Skip to content

Commit 3c4c94e

Browse files
jcotton42itzg
andauthored
Use mc-image-helper to install vanilla Minecraft. (#4165)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
1 parent cd2c562 commit 3c4c94e

4 files changed

Lines changed: 26 additions & 49 deletions

File tree

.github/workflows/build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,27 +80,27 @@ jobs:
8080
platforms: linux/amd64,linux/arm/v7,linux/arm64
8181
mcVersion: 1.16.5
8282
# Pin version for pre-Java 17
83-
mcHelperVersion: 1.51.3-java8
83+
mcHelperVersion: 1.51.4-java8
8484
# JAVA 11
8585
- variant: java11
8686
baseImage: adoptopenjdk:11-jre-hotspot
8787
platforms: linux/amd64,linux/arm/v7,linux/arm64
8888
mcVersion: 1.16.4
8989
# Pin version for pre-Java 17
90-
mcHelperVersion: 1.51.3-java8
90+
mcHelperVersion: 1.51.4-java8
9191
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
9292
- variant: java8
9393
baseImage: eclipse-temurin:8u312-b07-jre-focal
9494
platforms: linux/amd64,linux/arm/v7,linux/arm64
9595
mcVersion: 1.12.2
9696
# Pin version for Java 8, also be sure to set in verify-pr.yml
97-
mcHelperVersion: 1.51.3-java8
97+
mcHelperVersion: 1.51.4-java8
9898
- variant: java8-jdk
9999
baseImage: eclipse-temurin:8u312-b07-jdk-focal
100100
platforms: linux/amd64,linux/arm64
101101
mcVersion: 1.12.2
102102
# Pin version for Java 8, also be sure to set in verify-pr.yml
103-
mcHelperVersion: 1.51.3-java8
103+
mcHelperVersion: 1.51.4-java8
104104
env:
105105
# Assume they line up, but when forked change to your Docker Hub username
106106
DOCKER_HUB_ORG: ${{ github.repository_owner }}

.github/workflows/verify-pr.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,15 @@ jobs:
4747
mcVersion: 1.20.4
4848
# For GLIBC_2.34 support
4949
knockdRepoOrg: Metalcape/knock
50+
# JAVA 8:
5051
- variant: java8
5152
baseImage: eclipse-temurin:8u312-b07-jre-focal
5253
platforms: linux/amd64
5354
mcVersion: 1.12.2
5455
# For GLIBC_2.34 support
5556
knockdRepoOrg: Metalcape/knock
5657
# Pin version for Java 8, be sure to also set in build.yml
57-
mcHelperVersion: 1.51.3-java8
58+
mcHelperVersion: 1.51.4-java8
5859
env:
5960
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
6061
runs-on: ubuntu-22.04

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
5757
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
5858

5959
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
60-
ARG MC_HELPER_VERSION=1.61.4
60+
ARG MC_HELPER_VERSION=1.62.0
6161
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
6262
# used for cache busting local copy of mc-image-helper
6363
ARG MC_HELPER_REV=1

scripts/start-deployVanilla

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,28 @@
55
isDebugging && set -x
66
set -o pipefail
77

8-
resolveVersion
9-
export SERVER="minecraft_server.${VERSION// /_}.jar"
10-
11-
if [ ! -e "$SERVER" ] || [ -n "$FORCE_REDOWNLOAD" ]; then
12-
debug "Finding version manifest for $VERSION"
13-
versionManifestUrl=$(get 'https://launchermeta.mojang.com/mc/game/version_manifest.json' | jq --arg VERSION "$VERSION" --raw-output '[.versions[]|select(.id == $VERSION)][0].url')
14-
result=$?
15-
if [ $result != 0 ]; then
16-
logError "Failed to obtain version manifest URL ($result)"
17-
exit 1
18-
fi
19-
if [ "$versionManifestUrl" = "null" ]; then
20-
logError "Couldn't find a matching manifest entry for $VERSION"
21-
exit 1
22-
fi
23-
debug "Found version manifest at $versionManifestUrl"
24-
25-
if ! serverDownloadUrl=$(get --json-path '$.downloads.server.url' "${versionManifestUrl}"); then
26-
logError "Failed to obtain version manifest from $versionManifestUrl ($result)"
27-
exit 1
28-
elif [ "$serverDownloadUrl" = "null" ]; then
29-
logError "There is not a server download for version $VERSION"
30-
exit 1
31-
fi
32-
33-
log "Downloading $VERSION server..."
34-
debug "Downloading server from $serverDownloadUrl"
35-
get -o "$SERVER" "$serverDownloadUrl"
36-
result=$?
37-
if [ $result != 0 ]; then
38-
logError "Failed to download server from $serverDownloadUrl ($result)"
39-
exit 1
40-
fi
8+
resultsFile=/data/.install-vanilla.env
9+
10+
args=(
11+
--output-directory=/data
12+
--results-file="${resultsFile}"
13+
--version="${VERSION}"
14+
)
15+
16+
if isTrue "${FORCE_REDOWNLOAD}"; then
17+
log "Forcing re-install of Minecraft"
18+
args+=(--force-reinstall)
4119
fi
42-
minecraftServerJarPath=/data/minecraft_server.jar
43-
44-
if versionLessThan 1.6; then
45-
if ! [[ -L $minecraftServerJarPath && $minecraftServerJarPath -ef "/data/$SERVER" ]]; then
46-
rm -f $minecraftServerJarPath
47-
ln -s "/data/$SERVER" $minecraftServerJarPath
48-
fi
49-
SERVER=minecraft_server.jar
50-
elif [[ -L $minecraftServerJarPath ]]; then
51-
rm -f $minecraftServerJarPath
20+
21+
if ! mc-image-helper install-vanilla "${args[@]}"; then
22+
logError "Failed to install vanilla Minecraft version $VERSION"
23+
exit 1
5224
fi
5325

26+
applyResultsFile "${resultsFile}"
27+
28+
log "Successfully setup vanilla Minecraft version $VERSION"
29+
5430
isDebugging && ls -l
5531
export FAMILY=VANILLA
5632
exec "$(dirname "$0")/start-setupWorld" "$@"

0 commit comments

Comments
 (0)