mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-18 15:36:22 +00:00
Compare commits
24 Commits
2021.25.0-
...
2021.24.0-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be2ef20fc1 | ||
|
|
6020400d3b | ||
|
|
ae96adaeec | ||
|
|
d34be9f20e | ||
|
|
64a02d28bc | ||
|
|
c446cb11da | ||
|
|
7aea5b593e | ||
|
|
91adfaa1d9 | ||
|
|
e7b223f1c6 | ||
|
|
45eff98011 | ||
|
|
b4111f0428 | ||
|
|
288bdf3804 | ||
|
|
5bc1ac672e | ||
|
|
a503ad2ec2 | ||
|
|
3042aa4909 | ||
|
|
8882ae5f89 | ||
|
|
4149db7f11 | ||
|
|
666f538ad5 | ||
|
|
145403ea54 | ||
|
|
5392801ecd | ||
|
|
3dfd70d068 | ||
|
|
e5bc9b939f | ||
|
|
1b620d2d6d | ||
|
|
28d77853cb |
19
Dockerfile
19
Dockerfile
@@ -1,4 +1,4 @@
|
|||||||
FROM eclipse-temurin:8-jdk
|
FROM eclipse-temurin:17-jdk
|
||||||
|
|
||||||
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
|
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ RUN apt-get update \
|
|||||||
RUN addgroup --gid 1000 minecraft \
|
RUN addgroup --gid 1000 minecraft \
|
||||||
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
|
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
|
||||||
|
|
||||||
COPY --chmod=644 files/sudoers* /etc/sudoers.d
|
COPY files/sudoers* /etc/sudoers.d
|
||||||
|
|
||||||
EXPOSE 25565 25575
|
EXPOSE 25565 25575
|
||||||
|
|
||||||
@@ -78,14 +78,15 @@ ENV UID=1000 GID=1000 \
|
|||||||
ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \
|
ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \
|
||||||
AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0
|
AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0
|
||||||
|
|
||||||
COPY --chmod=755 scripts/start* /
|
COPY scripts/start* /
|
||||||
COPY --chmod=755 bin/ /usr/local/bin/
|
COPY bin/ /usr/local/bin/
|
||||||
COPY --chmod=755 bin/mc-health /health.sh
|
COPY bin/mc-health /health.sh
|
||||||
COPY --chmod=644 files/server.properties /tmp/server.properties
|
COPY files/server.properties /tmp/server.properties
|
||||||
COPY --chmod=644 files/log4j2.xml /tmp/log4j2.xml
|
COPY files/log4j2.xml /tmp/log4j2.xml
|
||||||
COPY --chmod=755 files/autopause /autopause
|
COPY files/autopause /autopause
|
||||||
|
|
||||||
RUN dos2unix /start* /autopause/*
|
RUN dos2unix /start* && chmod +x /start* \
|
||||||
|
&& dos2unix /autopause/* && chmod +x /autopause/*.sh
|
||||||
|
|
||||||
ENTRYPOINT [ "/start" ]
|
ENTRYPOINT [ "/start" ]
|
||||||
HEALTHCHECK --start-period=1m CMD mc-health
|
HEALTHCHECK --start-period=1m CMD mc-health
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ if [[ $tag ]]; then
|
|||||||
"generate_release_notes": true
|
"generate_release_notes": true
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
if ! curl "${auth[@]}" -H "Accept: application/vnd.github.v3+json" \
|
if ! echo curl "${auth[@]}" -H "Accept: application/vnd.github.v3+json" \
|
||||||
"${base}/repos/${owner}/${repo}/releases" -d "$releaseBody"; then
|
"${base}/repos/${owner}/${repo}/releases" -d "$releaseBody"; then
|
||||||
echo "ERROR failed to create github release $tag"
|
echo "ERROR failed to create github release $tag"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -115,6 +115,14 @@ case "${TYPE^^}" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
FORGE)
|
FORGE)
|
||||||
|
if versionLessThan 1.17; then
|
||||||
|
log "**********************************************************************"
|
||||||
|
log "WARNING: The image tag itzg/minecraft-server:java8 is recommended"
|
||||||
|
log " since some mods require Java 8"
|
||||||
|
log " Exception traces reporting ClassCastException: class jdk.internal.loader.ClassLoaders\$AppClassLoader"
|
||||||
|
log " can be fixed with java8"
|
||||||
|
log "**********************************************************************"
|
||||||
|
fi
|
||||||
exec ${SCRIPTS:-/}start-deployForge "$@"
|
exec ${SCRIPTS:-/}start-deployForge "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -127,6 +135,10 @@ case "${TYPE^^}" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
FTB|CURSEFORGE)
|
FTB|CURSEFORGE)
|
||||||
|
log "**********************************************************************"
|
||||||
|
log "NOTE: Some mods and modpacks may require Java 8."
|
||||||
|
log " If so, use itzg/minecraft-server:java8"
|
||||||
|
log "**********************************************************************"
|
||||||
exec ${SCRIPTS:-/}start-deployCF "$@"
|
exec ${SCRIPTS:-/}start-deployCF "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -171,6 +183,12 @@ case "${TYPE^^}" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
CRUCIBLE)
|
CRUCIBLE)
|
||||||
|
log "**********************************************************************"
|
||||||
|
log "WARNING: The image tag itzg/minecraft-server:java8 is recommended"
|
||||||
|
log " since some mods require Java 8"
|
||||||
|
log " Exception traces reporting ClassCastException: class jdk.internal.loader.ClassLoaders\$AppClassLoader"
|
||||||
|
log " can be fixed with java8"
|
||||||
|
log "**********************************************************************"
|
||||||
exec "${SCRIPTS:-/}start-deployCrucible" "$@"
|
exec "${SCRIPTS:-/}start-deployCrucible" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|||||||
@@ -107,36 +107,7 @@ if [ -n "$ICON" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
canUseRollingLogs=true
|
|
||||||
|
|
||||||
patchLog4jConfig() {
|
|
||||||
file=${1?}
|
|
||||||
url=${2?}
|
|
||||||
if ! get -o "$file" "$url"; then
|
|
||||||
log "ERROR: failed to download corrected log4j config"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
JVM_OPTS="-Dlog4j.configurationFile=${file} ${JVM_OPTS}"
|
|
||||||
canUseRollingLogs=false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Patch Log4j remote code execution vulnerability
|
|
||||||
# See https://www.minecraft.net/en-us/article/important-message--security-vulnerability-java-edition
|
|
||||||
if versionLessThan 1.7; then
|
|
||||||
: # No patch required here.
|
|
||||||
elif isFamily VANILLA && versionLessThan 1.12; then
|
|
||||||
patchLog4jConfig log4j2_17-111.xml https://launcher.mojang.com/v1/objects/dd2b723346a8dcd48e7f4d245f6bf09e98db9696/log4j2_17-111.xml
|
|
||||||
elif isFamily VANILLA && versionLessThan 1.17; then
|
|
||||||
patchLog4jConfig log4j2_112-116.xml https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml
|
|
||||||
elif versionLessThan 1.18.1; then
|
|
||||||
JVM_OPTS="-Dlog4j2.formatMsgNoLookups=true ${JVM_OPTS}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if isTrue ${ENABLE_ROLLING_LOGS:-false}; then
|
if isTrue ${ENABLE_ROLLING_LOGS:-false}; then
|
||||||
if ! ${canUseRollingLogs}; then
|
|
||||||
log "ERROR: Using rolling logs is currently not possible in the selected version due to CVE-2021-44228"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Set up log configuration
|
# Set up log configuration
|
||||||
LOGFILE="/data/log4j2.xml"
|
LOGFILE="/data/log4j2.xml"
|
||||||
if [ ! -e "$LOGFILE" ]; then
|
if [ ! -e "$LOGFILE" ]; then
|
||||||
@@ -179,6 +150,28 @@ if [ -n "$JVM_DD_OPTS" ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
patchLog4jConfig() {
|
||||||
|
file=${1?}
|
||||||
|
url=${2?}
|
||||||
|
if ! get -o "$file" "$url"; then
|
||||||
|
log "ERROR: failed to download corrected log4j config"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
JVM_OPTS="-Dlog4j.configurationFile=${file} ${JVM_OPTS}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Patch Log4j remote code execution vulnerability
|
||||||
|
# See https://www.minecraft.net/en-us/article/important-message--security-vulnerability-java-edition
|
||||||
|
if versionLessThan 1.7; then
|
||||||
|
: # No patch required here.
|
||||||
|
elif isFamily VANILLA && versionLessThan 1.12; then
|
||||||
|
patchLog4jConfig log4j2_17-111.xml https://launcher.mojang.com/v1/objects/dd2b723346a8dcd48e7f4d245f6bf09e98db9696/log4j2_17-111.xml
|
||||||
|
elif isFamily VANILLA && versionLessThan 1.17; then
|
||||||
|
patchLog4jConfig log4j2_112-116.xml https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml
|
||||||
|
elif versionLessThan 1.18.1; then
|
||||||
|
JVM_OPTS="-Dlog4j2.formatMsgNoLookups=true ${JVM_OPTS}"
|
||||||
|
fi
|
||||||
|
|
||||||
if isTrue ${ENABLE_JMX}; then
|
if isTrue ${ENABLE_JMX}; then
|
||||||
: ${JMX_PORT:=7091}
|
: ${JMX_PORT:=7091}
|
||||||
JVM_OPTS="${JVM_OPTS}
|
JVM_OPTS="${JVM_OPTS}
|
||||||
|
|||||||
Reference in New Issue
Block a user