diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7850aea --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +################################ +### We use a java base image ### +################################ +FROM openjdk:8 AS build + +MAINTAINER Marc Tönsing + +################# +### Arguments ### +################# + +ARG PAPERSPIGOT_CI_URL=https://papermc.io/ci/job/Paper-1.13/lastSuccessfulBuild/artifact/paperclip.jar + + +########################## +### Download paperclip ### +########################## +ADD ${PAPERSPIGOT_CI_URL} /opt/minecraft/server/paperclip.jar + +############################################ +### Run paperclip and obtain patched jar ### +############################################ +RUN cd /opt/minecraft/server/ \ + && java -jar paperclip.jar; exit 0 + +RUN cd /opt/minecraft/server/ \ + && mv cache/patched*.jar paperspigot.jar + +########################### +### Running environment ### +########################### +FROM anapsix/alpine-java:latest + +RUN apk --update add screen + +################### +### Environment ### +################### +ENV JAVA_ARGS "-Xmx3G" +ENV SPIGOT_ARGS "" +ENV PAPERSPIGOT_ARGS "" + +######################### +### Working directory ### +######################### +WORKDIR /data + +########################################### +### Obtain runable jar from build stage ### +########################################### +COPY --from=build /opt/minecraft/server/paperspigot.jar /opt/minecraft/server/paperspigot.jar + +######################## +### Obtain starth.sh ### +######################## +ADD start.sh /opt/minecraft/server/start.sh + +############### +### Volumes ### +############### +VOLUME "/data" + +############################# +### Expose minecraft port ### +############################# +EXPOSE 25565 + +###################################### +### Entrypoint is the start script ### +###################################### +ENTRYPOINT sh /opt/minecraft/server/start.sh diff --git a/crontab b/crontab new file mode 100644 index 0000000..e69de29 diff --git a/restart.sh b/restart.sh new file mode 100644 index 0000000..ba8e19a --- /dev/null +++ b/restart.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# Marc Tönsing - V1.1 - 18.05.2018 +# Minecraft Server restart +screen -Rd minecraft -X stuff "say Server is restarting in 30 seconds! $(printf '\r')" +sleep 23s +screen -Rd minecraft -X stuff "say Server is restarting in 7 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 6 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 5 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 4 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 3 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 2 seconds! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Server is restarting in 1 second! $(printf '\r')" +sleep 1s +screen -Rd minecraft -X stuff "say Closing server...$(printf '\r')" +screen -Rd minecraft -X stuff "stop $(printf '\r')" +sleep 15s +# echo "Updating to most recent paperclip version." +# wget -q https://papermc.io/ci/job/Paper-1.13/lastSuccessfulBuild/artifact/paperclip.jar -O /home/pi/minecraft/paperclip.jar +echo "Restarting now." +sudo /sbin/reboot diff --git a/run_example.sh b/run_example.sh new file mode 100755 index 0000000..e2fe904 --- /dev/null +++ b/run_example.sh @@ -0,0 +1,11 @@ +docker build -t minecraftpaperserver . +docker run \ + --rm \ + -v ~/server:/data:rw \ + -p 25565:25565 \ + -it minecraftpaperserver:latest + + + + +# --entrypoint=/bin/bash \ diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..3a6c7d1 --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +#/bin/sh +java -version +java -jar $JAVA_ARGS -Dcom.mojang.eula.agree=true /opt/minecraft/server/paperspigot.jar $SPIGOT_ARGS $PAPERSPIGOT_ARGS