mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2024-06-07 19:40:43 +00:00
Add support for download of world in zipfile
WORLD=http://hostname/world.zip Zipfile should contain world/ directory, and optionally any required mods in mods/ as well as optionally a default server.properties file (overwritten by any env vars) Also export volumes /mods and /config, the contents of which are copied to /data/mods and /data/config. This allows shared read-only mounts for modules without affecting world.
This commit is contained in:
parent
0acedd04b9
commit
ef34025dd8
@ -12,7 +12,9 @@ RUN wget -O /usr/bin/jsawk https://github.com/micha/jsawk/raw/master/jsawk
|
||||
RUN chmod +x /usr/bin/jsawk
|
||||
RUN useradd -M -s /bin/false --uid 1000 minecraft \
|
||||
&& mkdir /data \
|
||||
&& chown minecraft:minecraft /data
|
||||
&& mkdir /config \
|
||||
&& mkdir /mods \
|
||||
&& chown minecraft:minecraft /data /config /mods
|
||||
|
||||
EXPOSE 25565
|
||||
|
||||
@ -20,6 +22,8 @@ COPY start.sh /start
|
||||
COPY start-minecraft.sh /start-minecraft
|
||||
|
||||
VOLUME ["/data"]
|
||||
VOLUME ["/mods"]
|
||||
VOLUME ["/config"]
|
||||
COPY server.properties /tmp/server.properties
|
||||
WORKDIR /data
|
||||
|
||||
@ -32,4 +36,4 @@ ENV UID=1000
|
||||
ENV MOTD A Minecraft Server Powered by Docker
|
||||
ENV JVM_OPTS -Xmx1024M -Xms1024M
|
||||
ENV TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED LEVEL=world PVP=true DIFFICULTY=easy \
|
||||
LEVEL_TYPE=DEFAULT GENERATOR_SETTINGS=
|
||||
LEVEL_TYPE=DEFAULT GENERATOR_SETTINGS= WORLD=
|
||||
|
@ -86,6 +86,14 @@ case $TYPE in
|
||||
|
||||
esac
|
||||
|
||||
# If supplied with a URL for a world, download it and unpack
|
||||
case "X$WORLD" in
|
||||
Xhttp*)
|
||||
wget -q -O - $WORLD > /data/world.zip
|
||||
unzip /data/world.zip
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -e server.properties ]; then
|
||||
cp /tmp/server.properties .
|
||||
|
||||
@ -193,4 +201,21 @@ if [ -n "$ICON" -a ! -e server-icon.png ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# If any modules have been provided, copy them over
|
||||
[ -d /data/mods ] || mkdir /data/mods
|
||||
for m in /mods/*.jar
|
||||
do
|
||||
if [ -f "$m" ]; then
|
||||
cp $m /data/mods
|
||||
fi
|
||||
done
|
||||
[ -d /data/config ] || mkdir /data/config
|
||||
for c in /config/*
|
||||
do
|
||||
if [ -f "$c" ]; then
|
||||
cp -r $c /data/config
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
exec java $JVM_OPTS -jar $SERVER
|
||||
|
Loading…
Reference in New Issue
Block a user