From cf1386628e724b4fac7b7279c8ded4de0812ed6b Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Wed, 10 Jul 2024 12:35:59 +0200 Subject: [PATCH] Add custom JVM support --- config.example.env | 5 +++++ docker-compose.yml | 1 + entrypoint.sh | 15 +++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/config.example.env b/config.example.env index 0d14832..2646e55 100644 --- a/config.example.env +++ b/config.example.env @@ -47,6 +47,11 @@ MCSD_MEMORY_MIN=2048M ## >= 1.20.5 | 21 MCSD_JAVA_VERSION=21 +# JAVA_CUSTOM +## Set this to 'true' if you want to use a custom JVM +## located at './jvm/'. This will update $JAVA_HOME +MCSD_JAVA_CUSTOM=false + # OPTIMIZED_FLAGS ## Applies a modified variant of Aikar's Flags MCSD_OPTIMIZED_FLAGS=true diff --git a/docker-compose.yml b/docker-compose.yml index ffb86c6..340f722 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,7 @@ services: stop_grace_period: 120s volumes: - ./server:/data + - ./jvm:/jvm env_file: - ./config.env ports: diff --git a/entrypoint.sh b/entrypoint.sh index d7f7e97..1e17540 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -75,6 +75,11 @@ function initialize() { echo ":: Warning: No/Invalid java version supplied to \$MCSD_JAVA_VERSION, defaulting to java version 17" export "MCSD_JAVA_VERSION=17" fi + # Java custom JVM + if [ ! "${MCSD_JAVA_CUSTOM}" == "true" ] && [ ! "${MCSD_JAVA_CUSTOM}" == "false" ]; then + echo ":: Warning: No/Invalid value supplied to \$MCSD_JAVA_CUSTOM, defaulting to false" + export "MCSD_JAVA_CUSTOM=false" + fi # Java optimization if [ ! "${MCSD_OPTIMIZED_FLAGS}" == "true" ] && [ ! "${MCSD_OPTIMIZED_FLAGS}" == "false" ]; then echo ":: Warning: No/Invalid value supplied to \$MCSD_OPTIMIZED_FLAGS, defaulting to true" @@ -135,6 +140,12 @@ function compile_args() { # Compile java flags function compile_flags() { echo ":: Compiling java flags" + if [ "${MCSD_JAVA_CUSTOM}" == "true" ]; then + export "JAVA_HOME=/jvm" + else + export "JAVA_HOME=/usr/lib/jvm/java-${MCSD_JAVA_VERSION}-openjdk" + fi + export "FLAGS=-Xms${MCSD_MEMORY_MIN} -Xmx${MCSD_MEMORY_MAX}" case "${MCSD_OPTIMIZED_FLAGS}" in "true") @@ -172,7 +183,7 @@ compile_flags echo ":: Starting server" cd /data||exit 69 if [ -z "${MCSD_CUSTOM_ARGS}" ]; then - exec "/usr/lib/jvm/java-${MCSD_JAVA_VERSION}-openjdk/bin/java" ${FLAGS} -jar "/data/server.jar" ${ARGS} + exec "${JAVA_HOME}/bin/java" ${FLAGS} -jar "/data/server.jar" ${ARGS} else - exec "/usr/lib/jvm/java-${MCSD_JAVA_VERSION}-openjdk/bin/java" ${MCSD_CUSTOM_ARGS} -jar "/data/server.jar" ${ARGS} + exec "${JAVA_HOME}/bin/java" ${MCSD_CUSTOM_ARGS} -jar "/data/server.jar" ${ARGS} fi