mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-07-12 11:35:09 +00:00
Changing builds to JRE, and moving Java8 to pinned version for forge (#1382)
This commit is contained in:
@@ -26,38 +26,53 @@ jobs:
|
|||||||
- java11
|
- java11
|
||||||
- java11-openj9
|
- java11-openj9
|
||||||
include:
|
include:
|
||||||
|
# JAVA 17:
|
||||||
- variant: java17
|
- variant: java17
|
||||||
|
baseImage: eclipse-temurin:17-jre
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
mcVersion: LATEST
|
||||||
|
- variant: java17-jdk
|
||||||
baseImage: eclipse-temurin:17
|
baseImage: eclipse-temurin:17
|
||||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
mcVersion: LATEST
|
mcVersion: LATEST
|
||||||
- variant: java17-openj9
|
- variant: java17-openj9
|
||||||
baseImage: ibm-semeru-runtimes:open-17-jdk
|
baseImage: ibm-semeru-runtimes:open-17-jre
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: LATEST
|
mcVersion: LATEST
|
||||||
- variant: java17-alpine
|
- variant: java17-alpine
|
||||||
baseImage: eclipse-temurin:17-jdk-alpine
|
baseImage: eclipse-temurin:17-jre-alpine
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
mcVersion: LATEST
|
mcVersion: LATEST
|
||||||
|
# JAVA 11:
|
||||||
|
- variant: java11
|
||||||
|
baseImage: adoptopenjdk:11-jre-hotspot
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
mcVersion: 1.16.5
|
||||||
|
- variant: java11-jdk
|
||||||
|
baseImage: adoptopenjdk:11-jdk-hotspot
|
||||||
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
|
mcVersion: 1.16.5
|
||||||
|
- variant: java11-openj9
|
||||||
|
baseImage: ibm-semeru-runtimes:open-11-jre
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
mcVersion: 1.16.5
|
||||||
|
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge https://github.com/MultiMC/Launcher/issues/447
|
||||||
- variant: java8
|
- variant: java8
|
||||||
baseImage: openjdk:8-jdk-alpine3.8
|
baseImage: openjdk:8-jre-alpine3.9
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
- variant: java8-multiarch
|
- variant: java8-multiarch
|
||||||
baseImage: eclipse-temurin:8u312-b07-jre
|
baseImage: eclipse-temurin:8u312-b07-jre
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
- variant: java8-openj9
|
- variant: java8-jdk
|
||||||
baseImage: ibm-semeru-runtimes:open-8-jdk
|
baseImage: eclipse-temurin:8u312-b07-jdk
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
- variant: java11
|
- variant: java8-openj9
|
||||||
baseImage: adoptopenjdk:11-jdk-hotspot
|
baseImage: ibm-semeru-runtimes:open-8u312-b07-jre
|
||||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
|
||||||
mcVersion: 1.16.5
|
|
||||||
- variant: java11-openj9
|
|
||||||
baseImage: ibm-semeru-runtimes:open-11-jdk
|
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.16.5
|
mcVersion: 1.12.2
|
||||||
env:
|
env:
|
||||||
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
@@ -115,6 +130,7 @@ jobs:
|
|||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
env:
|
||||||
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
|
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
|
||||||
|
VARIANT: ${{ matrix.variant }}
|
||||||
MODS_FORGEAPI_KEY: ${{ secrets.MODS_FORGEAPI_KEY }}
|
MODS_FORGEAPI_KEY: ${{ secrets.MODS_FORGEAPI_KEY }}
|
||||||
run: |
|
run: |
|
||||||
tests/test.sh
|
tests/test.sh
|
||||||
|
|||||||
+9
-2
@@ -23,10 +23,17 @@ $env:IMAGE_TO_TEST="mc-dev"
|
|||||||
docker build -t $env:IMAGE_TO_TEST .
|
docker build -t $env:IMAGE_TO_TEST .
|
||||||
pushd "tests/setuponlytests/$env:FOLDER_TO_TEST/"
|
pushd "tests/setuponlytests/$env:FOLDER_TO_TEST/"
|
||||||
docker-compose run mc
|
docker-compose run mc
|
||||||
docker-compose down --remove-orphans
|
docker-compose down -v --remove-orphans
|
||||||
popd
|
popd
|
||||||
```
|
```
|
||||||
|
|
||||||
|
PowerShell: Building different images of Java for testing
|
||||||
|
```powershell
|
||||||
|
$env:BASE_IMAGE='eclipse-temurin:8u312-b07-jre'
|
||||||
|
$env:IMAGE_TO_TEST="mc-dev"
|
||||||
|
docker build --build-arg BASE_IMAGE=$env:BASE_IMAGE -t $env:IMAGE_TO_TEST .
|
||||||
|
```
|
||||||
|
|
||||||
Bash: (Example of building and testing ForgeAPI)
|
Bash: (Example of building and testing ForgeAPI)
|
||||||
```bash
|
```bash
|
||||||
export MODS_FORGEAPI_KEY='$2a$...'
|
export MODS_FORGEAPI_KEY='$2a$...'
|
||||||
@@ -35,7 +42,7 @@ export IMAGE_TO_TEST="mc-dev"
|
|||||||
docker build -t $IMAGE_TO_TEST .
|
docker build -t $IMAGE_TO_TEST .
|
||||||
pushd tests/setuponlytests/$FOLDER_TO_TEST/
|
pushd tests/setuponlytests/$FOLDER_TO_TEST/
|
||||||
docker-compose run mc
|
docker-compose run mc
|
||||||
docker-compose down --remove-orphans
|
docker-compose down -v --remove-orphans
|
||||||
popd
|
popd
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -159,13 +159,15 @@ downloadModPackfromModFile() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# grabs needed values from our json return
|
# grabs needed values from our json return
|
||||||
|
unset file_name
|
||||||
|
unset download_url
|
||||||
file_name=$(jq -n "$PROJECT_FILE" | jq -jc '.fileName' )
|
file_name=$(jq -n "$PROJECT_FILE" | jq -jc '.fileName' )
|
||||||
download_url=$(jq -n "$PROJECT_FILE" | jq -jc '.downloadUrl' )
|
download_url=$(jq -n "$PROJECT_FILE" | jq -jc '.downloadUrl' )
|
||||||
|
|
||||||
# trys to make the output directory incase it doesnt exist.
|
# trys to make the output directory incase it doesnt exist.
|
||||||
mkdir -p "$out_dir"
|
mkdir -p "$out_dir"
|
||||||
echo "Downloading ${download_url}"
|
echo "Downloading ${download_url}"
|
||||||
if ! get --skip-up-to-date -o "${out_dir}/${file_name}" $download_url ; then
|
if ! get --skip-up-to-date -o "${out_dir}/${file_name}" "${download_url}"; then
|
||||||
log "ERROR: failed to download from ${download_url}"
|
log "ERROR: failed to download from ${download_url}"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
@@ -179,25 +181,6 @@ downloadDependencies(){
|
|||||||
if [ "$required_dependencies" ]; then
|
if [ "$required_dependencies" ]; then
|
||||||
jq -n "$required_dependencies" | jq -c '.[]?' | while read current_dependency; do
|
jq -n "$required_dependencies" | jq -c '.[]?' | while read current_dependency; do
|
||||||
mod_id=$(jq -n "$current_dependency" | jq -jc '.modId' )
|
mod_id=$(jq -n "$current_dependency" | jq -jc '.modId' )
|
||||||
|
|
||||||
# BROKEN: Example Voice mod keeps returning the voice mod file id instead of the mod file id.
|
|
||||||
# file_id=$(jq -n "$current_dependency" | jq -jc '.fileId' )
|
|
||||||
# dependency_data=$(curl -X GET -s \
|
|
||||||
# "${FORGEAPI_BASE_URL}/mods/${mod_id}/files/${file_id}/download-url" \
|
|
||||||
# -H 'Accept: application/json' -H 'x-api-key: '${MODS_FORGEAPI_KEY}'')
|
|
||||||
# if [ ! "$dependency_data" ]; then
|
|
||||||
# log "ERROR: unable to retrieve dependency data files for ${project_id} from ForgeAPI"
|
|
||||||
# exit 2
|
|
||||||
# fi
|
|
||||||
# dependency_download_url=$(jq -n "$dependency_data" | jq -jc '.data' )
|
|
||||||
# echo "Downloading dependency ${dependency_download_url}"
|
|
||||||
# if ! get -o "${out_dir}/" $dependency_download_url ; then
|
|
||||||
# log "ERROR: failed to download dependency from ${dependency_download_url}"
|
|
||||||
# exit 2
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# Using current mod path and release to go get the REQUIRED DEPENDENCY
|
|
||||||
# NOTE: we are ASUMING it will be release.
|
|
||||||
modFileByProjectID $mod_id "release"
|
modFileByProjectID $mod_id "release"
|
||||||
downloadModPackfromModFile
|
downloadModPackfromModFile
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: ${IMAGE_TO_TEST:-itzg/minecraft-server:java8-multiarch}
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
SETUP_ONLY: "TRUE"
|
||||||
|
TYPE: CURSEFORGE
|
||||||
|
CF_SERVER_MOD: /modpacks/pack.zip
|
||||||
|
INIT_MEMORY: 2G
|
||||||
|
MAX_MEMORY: 6G
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./modpacks:/modpacks:ro
|
||||||
|
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
[[ $VARIANT == java8* ]] || exit 1
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mc-image-helper assert fileExists "/data/FeedTheBeast/forge-installer.jar"
|
||||||
|
mc-image-helper assert fileExists "/data/FeedTheBeast/forge.jar"
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
[[ $MINECRAFT_VERSION == LATEST ]] || exit 1
|
||||||
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
[[ $MINECRAFT_VERSION == LATEST ]] || exit 1
|
||||||
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
[[ $MINECRAFT_VERSION == LATEST ]] || exit 1
|
||||||
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
[[ $MODS_FORGEAPI_KEY ]] || exit 1
|
||||||
Reference in New Issue
Block a user