Add custom JVM support

This commit is contained in:
JeremyStar™ 2024-07-10 12:35:59 +02:00
parent f12db20ac9
commit cf1386628e
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D
3 changed files with 19 additions and 2 deletions

View file

@ -47,6 +47,11 @@ MCSD_MEMORY_MIN=2048M
## >= 1.20.5 | 21 ## >= 1.20.5 | 21
MCSD_JAVA_VERSION=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 # OPTIMIZED_FLAGS
## Applies a modified variant of Aikar's Flags ## Applies a modified variant of Aikar's Flags
MCSD_OPTIMIZED_FLAGS=true MCSD_OPTIMIZED_FLAGS=true

View file

@ -6,6 +6,7 @@ services:
stop_grace_period: 120s stop_grace_period: 120s
volumes: volumes:
- ./server:/data - ./server:/data
- ./jvm:/jvm
env_file: env_file:
- ./config.env - ./config.env
ports: ports:

View file

@ -75,6 +75,11 @@ function initialize() {
echo ":: Warning: No/Invalid java version supplied to \$MCSD_JAVA_VERSION, defaulting to java version 17" echo ":: Warning: No/Invalid java version supplied to \$MCSD_JAVA_VERSION, defaulting to java version 17"
export "MCSD_JAVA_VERSION=17" export "MCSD_JAVA_VERSION=17"
fi 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 # Java optimization
if [ ! "${MCSD_OPTIMIZED_FLAGS}" == "true" ] && [ ! "${MCSD_OPTIMIZED_FLAGS}" == "false" ]; then if [ ! "${MCSD_OPTIMIZED_FLAGS}" == "true" ] && [ ! "${MCSD_OPTIMIZED_FLAGS}" == "false" ]; then
echo ":: Warning: No/Invalid value supplied to \$MCSD_OPTIMIZED_FLAGS, defaulting to true" echo ":: Warning: No/Invalid value supplied to \$MCSD_OPTIMIZED_FLAGS, defaulting to true"
@ -135,6 +140,12 @@ function compile_args() {
# Compile java flags # Compile java flags
function compile_flags() { function compile_flags() {
echo ":: Compiling java 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}" export "FLAGS=-Xms${MCSD_MEMORY_MIN} -Xmx${MCSD_MEMORY_MAX}"
case "${MCSD_OPTIMIZED_FLAGS}" in case "${MCSD_OPTIMIZED_FLAGS}" in
"true") "true")
@ -172,7 +183,7 @@ compile_flags
echo ":: Starting server" echo ":: Starting server"
cd /data||exit 69 cd /data||exit 69
if [ -z "${MCSD_CUSTOM_ARGS}" ]; then 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 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 fi