/ minecraft / bin / docker-entrypoint.sh
docker-entrypoint.sh
 1  #!/bin/sh
 2  
 3  export JAVA_HOME=/opt/java/customjdk
 4  export JAVA_VERSION=jdk-21.0.7+6
 5  export PATH="${JAVA_HOME}/bin:${PATH}"
 6  export LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
 7  
 8  if [ "$MAINTENANCE_MODE" = "1" ]; then
 9      echo "*** ENTERING MAINTENANCE MODE ***" >&2
10      echo "*** Minecraft will not start  ***" >&2
11      while true; do
12          sleep 1
13      done
14      exit 0
15  fi
16  
17  # For an explanation, see https://docs.papermc.io/paper/aikars-flags
18  AIKAR_FLAGS=" \
19      -XX:+UseG1GC \
20      -XX:+ParallelRefProcEnabled \
21      -XX:MaxGCPauseMillis=200 \
22      -XX:+UnlockExperimentalVMOptions \
23      -XX:+DisableExplicitGC \
24      -XX:+AlwaysPreTouch \
25      -XX:G1NewSizePercent=30 \
26      -XX:G1MaxNewSizePercent=40 \
27      -XX:G1HeapRegionSize=8M \
28      -XX:G1ReservePercent=20 \
29      -XX:G1HeapWastePercent=5 \
30      -XX:G1MixedGCCountTarget=4 \
31      -XX:InitiatingHeapOccupancyPercent=15 \
32      -XX:G1MixedGCLiveThresholdPercent=90 \
33      -XX:G1RSetUpdatingPauseTimePercent=5 \
34      -XX:SurvivorRatio=32 \
35      -XX:+PerfDisableSharedMem \
36      -XX:MaxTenuringThreshold=1 \
37  "
38  
39  # Defines command line options for the Java invocation
40  JAVA_OPTS=" \
41      -Xms${JAVA_INITIAL_MEM:-256m} \
42      -Xmx${JAVA_MAX_MEM:-4G} \
43      ${AIKAR_FLAGS} \
44      -Dlog4j.configurationFile=/etc/minecraft/server/log4j2.xml \
45  "
46  
47  if [ "$OPENTELEMETRY_AGENT" = "1" ]; then
48      JAVA_OPTS="$JAVA_OPTS \
49          -Dotel.javaagent.configuration-file=/etc/minecraft/server/opentelemetry.properties \
50          -javaagent:/usr/local/lib/opentelemetry-javaagent.jar \
51      "
52  fi
53  
54  trap 'echo "Got SIGTERM, shutting down"' TERM
55  
56  /opt/java/customjdk/bin/java \
57      ${JAVA_OPTS} \
58      -jar /usr/local/lib/fabric-launcher.jar \
59      --serverId "${MINECRAFT_SERVER_ID:-minecraft}" \
60      --universe /var/lib/minecraft/universe \
61      --nogui \
62      "$@" &
63  
64  child=$!
65  wait "$child"