From 08d459c3738c28a40c5c81a17f089f69bf9bfa57 Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Wed, 7 Dec 2016 00:31:06 +0200 Subject: [PATCH 1/4] changed to work on alpine container --- minecraft-server/Dockerfile | 35 +++++++++++++++++------------ minecraft-server/start-minecraft.sh | 15 +++++++------ minecraft-server/start.sh | 8 +++---- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/minecraft-server/Dockerfile b/minecraft-server/Dockerfile index fe28bd34..5dcd2b4b 100644 --- a/minecraft-server/Dockerfile +++ b/minecraft-server/Dockerfile @@ -1,29 +1,36 @@ -FROM java:8 +FROM alpine +#FROM container4armhf/armhf-alpine MAINTAINER itzg -ENV APT_GET_UPDATE 2016-04-23 -RUN apt-get update +RUN echo "http://dl-3.alpinelinux.org/alpine/v3.5/community/" >> /etc/apk/repositories &&\ + apk update && \ + apk add \ + openjdk8-jre-base \ + openssl \ + imagemagick \ + lsof \ + su-exec \ + bash \ + git \ + jq &&\ + rm -rf /var/cache/apk/* -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \ - imagemagick \ - lsof \ - nano \ - sudo \ - vim \ - jq \ - && apt-get clean + #nano \ + #sudo \ + #vim \ -RUN useradd -s /bin/false --uid 1000 minecraft \ +RUN addgroup -g 1000 minecraft \ + && adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \ && mkdir /data \ && mkdir /config \ && mkdir /mods \ && mkdir /plugins \ - && mkdir /home/minecraft \ && chown minecraft:minecraft /data /config /mods /plugins /home/minecraft EXPOSE 25565 25575 +#ADD https://github.com/itzg/restify/releases/download/1.0.3/restify_linux_arm /usr/local/bin/restify ADD https://github.com/itzg/restify/releases/download/1.0.3/restify_linux_amd64 /usr/local/bin/restify COPY start.sh /start COPY start-minecraft.sh /start-minecraft @@ -38,6 +45,6 @@ ENTRYPOINT [ "/start" ] ENV UID=1000 GID=1000 \ MOTD="A Minecraft Server Powered by Docker" \ - JVM_OPTS="-Xmx1024M -Xms1024M" \ + JVM_OPTS="-Xmx1024M -Xms256M" \ TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED LEVEL=world PVP=true DIFFICULTY=easy \ LEVEL_TYPE=DEFAULT GENERATOR_SETTINGS= WORLD= MODPACK= ONLINE_MODE=TRUE CONSOLE=true diff --git a/minecraft-server/start-minecraft.sh b/minecraft-server/start-minecraft.sh index 02caf3dc..f3e32c8d 100755 --- a/minecraft-server/start-minecraft.sh +++ b/minecraft-server/start-minecraft.sh @@ -23,16 +23,16 @@ VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json echo "Checking version information." case "X$VERSION" in X|XLATEST|Xlatest) - VANILLA_VERSION=`curl -sSL $VERSIONS_JSON | jq -r '.latest.release'` + VANILLA_VERSION=`wget -O - -q $VERSIONS_JSON | jq -r '.latest.release'` ;; XSNAPSHOT|Xsnapshot) - VANILLA_VERSION=`curl -sSL $VERSIONS_JSON | jq -r '.latest.snapshot'` + VANILLA_VERSION=`wget -O - -q $VERSIONS_JSON | jq -r '.latest.snapshot'` ;; X[1-9]*) VANILLA_VERSION=$VERSION ;; *) - VANILLA_VERSION=`curl -sSL $VERSIONS_JSON | jq -r '.latest.release'` + VANILLA_VERSION=`wget -O - -q $VERSIONS_JSON | jq -r '.latest.release'` ;; esac @@ -120,7 +120,7 @@ function installForge { echo "Checking Forge version information." case $FORGEVERSION in RECOMMENDED) - curl -o /tmp/forge.json -sSL http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json + wget -q -O /tmp/forge.json -sSL http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json FORGE_VERSION=$(cat /tmp/forge.json | jq -r ".promos[\"$norm-recommended\"]") if [ $FORGE_VERSION = null ]; then FORGE_VERSION=$(cat /tmp/forge.json | jq -r ".promos[\"$norm-latest\"]") @@ -138,7 +138,7 @@ function installForge { esac # URL format changed for 1.7.10 from 10.13.2.1300 - sorted=$((echo $FORGE_VERSION; echo 10.13.2.1300) | sort -V | head -1) + sorted=$( (echo $FORGE_VERSION; echo 10.13.2.1300) | sort -V | head -1) if [[ $norm == '1.7.10' && $sorted == '10.13.2.1300' ]]; then # if $FORGEVERSION >= 10.13.2.1300 normForgeVersion="$norm-$FORGE_VERSION-$norm" @@ -320,7 +320,7 @@ if [ ! -e server.properties ]; then if [ -n "$LEVEL_TYPE" ]; then # normalize to uppercase - LEVEL_TYPE=${LEVEL_TYPE^^} + LEVEL_TYPE=$( echo ${LEVEL_TYPE} | tr '[:lower:]' '[:upper:]' ) echo "Setting level type to $LEVEL_TYPE" # check for valid values and only then set case $LEVEL_TYPE in @@ -359,7 +359,8 @@ if [ ! -e server.properties ]; then if [ -n "$MODE" ]; then echo "Setting mode" - case ${MODE,,?} in + MODE_LC=$( echo $MODE | tr '[:upper:]' '[:lower:]' ) + case $MODE_LC in 0|1|2|3) ;; su*) diff --git a/minecraft-server/start.sh b/minecraft-server/start.sh index c3d2e4c2..0765a439 100755 --- a/minecraft-server/start.sh +++ b/minecraft-server/start.sh @@ -1,13 +1,13 @@ #!/bin/sh set -e -usermod --uid $UID minecraft -groupmod --gid $GID minecraft +sed -i "/^minecraft/s/1000/${UID}/g" /etc/passwd +sed -i "/^minecraft/s/1000/${GID}/g" /etc/group if [ "$SKIP_OWNERSHIP_FIX" != "TRUE" ]; then fix_ownership() { dir=$1 - if ! sudo -u minecraft test -w $dir; then + if ! su-exec minecraft test -w $dir; then echo "Correcting writability of $dir ..." chown -R minecraft:minecraft $dir chmod -R u+w $dir @@ -19,4 +19,4 @@ if [ "$SKIP_OWNERSHIP_FIX" != "TRUE" ]; then fi echo "Switching to user 'minecraft'" -exec sudo -E -u minecraft /start-minecraft "$@" +su-exec minecraft /start-minecraft $@ From f48eedee7871362dbfd2408dbb2d1b868851b803 Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Wed, 7 Dec 2016 19:06:01 +0200 Subject: [PATCH 2/4] restored the java heap size I reduced it for RasPi, but forgot it low here too. Restored. --- minecraft-server/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft-server/Dockerfile b/minecraft-server/Dockerfile index 5dcd2b4b..980eb561 100644 --- a/minecraft-server/Dockerfile +++ b/minecraft-server/Dockerfile @@ -45,6 +45,6 @@ ENTRYPOINT [ "/start" ] ENV UID=1000 GID=1000 \ MOTD="A Minecraft Server Powered by Docker" \ - JVM_OPTS="-Xmx1024M -Xms256M" \ + JVM_OPTS="-Xmx1024M -Xms1024M" \ TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED LEVEL=world PVP=true DIFFICULTY=easy \ LEVEL_TYPE=DEFAULT GENERATOR_SETTINGS= WORLD= MODPACK= ONLINE_MODE=TRUE CONSOLE=true From 2d8b3d72755445afccdc9cc91eb52c4ae7881e5a Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Wed, 7 Dec 2016 19:10:18 +0200 Subject: [PATCH 3/4] Remove commented lines --- minecraft-server/Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/minecraft-server/Dockerfile b/minecraft-server/Dockerfile index 980eb561..7b4d9b1a 100644 --- a/minecraft-server/Dockerfile +++ b/minecraft-server/Dockerfile @@ -1,5 +1,4 @@ FROM alpine -#FROM container4armhf/armhf-alpine MAINTAINER itzg @@ -16,10 +15,6 @@ RUN echo "http://dl-3.alpinelinux.org/alpine/v3.5/community/" >> /etc/apk/reposi jq &&\ rm -rf /var/cache/apk/* - #nano \ - #sudo \ - #vim \ - RUN addgroup -g 1000 minecraft \ && adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \ && mkdir /data \ @@ -30,7 +25,6 @@ RUN addgroup -g 1000 minecraft \ EXPOSE 25565 25575 -#ADD https://github.com/itzg/restify/releases/download/1.0.3/restify_linux_arm /usr/local/bin/restify ADD https://github.com/itzg/restify/releases/download/1.0.3/restify_linux_amd64 /usr/local/bin/restify COPY start.sh /start COPY start-minecraft.sh /start-minecraft From 18919ef33c4642150587e2ed1d1513dfa80f9aba Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Wed, 22 Feb 2017 13:14:48 -0600 Subject: [PATCH 4/4] [mc] Upgrade to Alpine compatible restify --- minecraft-server/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecraft-server/Dockerfile b/minecraft-server/Dockerfile index 7b4d9b1a..c8c33c80 100644 --- a/minecraft-server/Dockerfile +++ b/minecraft-server/Dockerfile @@ -25,7 +25,7 @@ RUN addgroup -g 1000 minecraft \ EXPOSE 25565 25575 -ADD https://github.com/itzg/restify/releases/download/1.0.3/restify_linux_amd64 /usr/local/bin/restify +ADD https://github.com/itzg/restify/releases/download/1.0.4/restify_linux_amd64 /usr/local/bin/restify COPY start.sh /start COPY start-minecraft.sh /start-minecraft COPY mcadmin.jq /usr/share