mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-10-17 01:08:12 +00:00
Add AOT cache for mc-image-helper on Java 25+ (#4341)
This commit is contained in:
1 parent
8f08edec05
commit
4cb8a05f9c
5 files changed
+43
No files matched your search
@@ -49,18 +49,22 @@ jobs:
|
|||||||
baseImage: eclipse-temurin:25-jre-noble
|
baseImage: eclipse-temurin:25-jre-noble
|
||||||
platforms: linux/amd64,linux/arm64,linux/riscv64
|
platforms: linux/amd64,linux/arm64,linux/riscv64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
- variant: java25-alpine
|
- variant: java25-alpine
|
||||||
baseImage: eclipse-temurin:25-jre-alpine
|
baseImage: eclipse-temurin:25-jre-alpine
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
- variant: java25-jdk
|
- variant: java25-jdk
|
||||||
baseImage: eclipse-temurin:25
|
baseImage: eclipse-temurin:25
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
- variant: java25-graalvm
|
- variant: java25-graalvm
|
||||||
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
# JAVA 21:
|
# JAVA 21:
|
||||||
- variant: java21
|
- variant: java21
|
||||||
baseImage: eclipse-temurin:21-jre
|
baseImage: eclipse-temurin:21-jre
|
||||||
@@ -240,6 +244,7 @@ jobs:
|
|||||||
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
|
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
|
||||||
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
|
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
|
||||||
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
|
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
|
||||||
|
${{ matrix.enableMcHelperAotWarmup && 'ENABLE_MC_HELPER_AOT_WARMUP=1' || 'ENABLE_MC_HELPER_AOT_WARMUP=0' }}
|
||||||
IMAGE_AUTHOR=${{ env.IMAGE_AUTHOR }}
|
IMAGE_AUTHOR=${{ env.IMAGE_AUTHOR }}
|
||||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||||
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}
|
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}
|
||||||
@@ -34,17 +34,20 @@ jobs:
|
|||||||
baseImage: eclipse-temurin:25-jre-noble
|
baseImage: eclipse-temurin:25-jre-noble
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
- variant: java25-alpine
|
- variant: java25-alpine
|
||||||
baseImage: eclipse-temurin:25-jre-alpine
|
baseImage: eclipse-temurin:25-jre-alpine
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
# For GLIBC_2.34 support (and Alpine)
|
# For GLIBC_2.34 support (and Alpine)
|
||||||
knockdRepoOrg: Metalcape/knock
|
knockdRepoOrg: Metalcape/knock
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
- variant: java25-graalvm
|
- variant: java25-graalvm
|
||||||
# stay aligned with build.yml
|
# stay aligned with build.yml
|
||||||
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
|
enableMcHelperAotWarmup: true
|
||||||
# JAVA 17:
|
# JAVA 17:
|
||||||
- variant: java17
|
- variant: java17
|
||||||
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
|
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
|
||||||
@@ -107,6 +110,7 @@ jobs:
|
|||||||
BASE_IMAGE=${{ matrix.baseImage }}
|
BASE_IMAGE=${{ matrix.baseImage }}
|
||||||
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
|
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
|
||||||
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
|
${{ matrix.knockdRepoOrg && format('KNOCKD_REPO_ORG={0}', matrix.knockdRepoOrg) }}
|
||||||
|
${{ matrix.enableMcHelperAotWarmup && 'ENABLE_MC_HELPER_AOT_WARMUP=1' || 'ENABLE_MC_HELPER_AOT_WARMUP=0' }}
|
||||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
|||||||
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
|
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
|
||||||
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
|
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
|
||||||
|
|
||||||
|
|
||||||
|
ENV MC_IMAGE_HELPER_AOT_CACHE=/usr/share/mc-image-helper/cache/aot.cache
|
||||||
|
ARG ENABLE_MC_HELPER_AOT_WARMUP=0
|
||||||
|
RUN --mount=target=/build,source=build \
|
||||||
|
/build/create-aot-cache.sh
|
||||||
|
|
||||||
VOLUME ["/data"]
|
VOLUME ["/data"]
|
||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
|
|
||||||
|
|||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
if [ "${ENABLE_MC_HELPER_AOT_WARMUP}" = "1" ]; then
|
||||||
|
echo "Warming mc-image-helper AOT cache at ${MC_IMAGE_HELPER_AOT_CACHE}"
|
||||||
|
mkdir -p "$(dirname "${MC_IMAGE_HELPER_AOT_CACHE}")"
|
||||||
|
|
||||||
|
aot_config=/tmp/mc-image-helper.aotconf
|
||||||
|
# record config
|
||||||
|
if ! MC_IMAGE_HELPER_OPTS="-XX:AOTMode=record -XX:AOTConfiguration=${aot_config}" mc-image-helper java-release > /dev/null; then
|
||||||
|
echo "Failed to record AOT configuration"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create cache
|
||||||
|
if ! MC_IMAGE_HELPER_OPTS="-XX:AOTMode=create -XX:AOTConfiguration=${aot_config} -XX:AOTCache=${MC_IMAGE_HELPER_AOT_CACHE}" mc-image-helper java-release > /dev/null; then
|
||||||
|
echo "Failed to create AOT cache"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Skipping mc-image-helper AOT warmup"
|
||||||
|
fi
|
||||||
@@ -65,6 +65,12 @@ if isTrue "${DEBUG_MEMORY:-false}"; then
|
|||||||
free -m | applyLogPrefix
|
free -m | applyLogPrefix
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
: "${MC_IMAGE_HELPER_AOT_CACHE:=/usr/share/mc-image-helper/cache/aot.cache}"
|
||||||
|
if (( $(getJavaRelease) >= 25 )) && [ -f "${MC_IMAGE_HELPER_AOT_CACHE}" ]; then
|
||||||
|
MC_IMAGE_HELPER_OPTS+=" -XX:AOTMode=auto -XX:AOTCache=${MC_IMAGE_HELPER_AOT_CACHE}"
|
||||||
|
export MC_IMAGE_HELPER_OPTS
|
||||||
|
fi
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Setup RCON password
|
# Setup RCON password
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user