FTB Revelationsserver + Dynmap mit Docker
Schritt 0: Neuen Ordner erstellen
Verzeichnis wechseln mit cd Ordnername und erstellen mit mkdir Ordnername.
Schritt 1: Dockerfile erstellen
Im Ordner die Datei Dockerfile erstellen
nano Dockerfile
mit dem Inhalt
FROM java:8 ENV FTB_INFINITY_URL https://addons-origin.cursecdn.com/files/2519/465/FTBRevelationServer_1.3.0.zip
ENV LAUNCHWRAPPER net/minecraft/launchwrapper/1.12.2/launchwrapper-1.12.2.jar RUN curl -SL $FTB_INFINITY_URL -o /tmp/revelations.zip &&
unzip /tmp/revelations.zip -d /opt/minecraft &&
mkdir -p /opt/minecraft/$(dirname libraries/${LAUNCHWRAPPER}) &&
curl -S https://libraries.minecraft.net/$LAUNCHWRAPPER -o /opt/minecraft/libraries/$LAUNCHWRAPPER &&
curl -SL https://addons-origin.cursecdn.com/files/2436/596/Dynmap-2.6-beta-1-forge-1.12.jar -o /opt/minecraft/mods/Dynmap-2.6-beta-1-forge-1.12.jar &&
find /opt/minecraft -name "*.log" -exec rm -f {} ; &&
rm -rf /opt/minecraft/ops.* /opt/minecraft/whitelist.* /opt/minecraft/logs/* /tmp/*
ADD settings.sh /opt/minecraft/settings.sh RUN ln -s /opt/minecraft/settings/server.properties /opt/minecraft/server.properties
RUN ln -s /opt/minecraft/settings/whitelist.json /opt/minecraft/whitelist.json
RUN ln -s /opt/minecraft/settings/ops.json /opt/minecraft/ops.json
RUN ln -s /opt/minecraft/settings/banned-players.json /opt/minecraft/banned-players.json
RUN ln -s /opt/minecraft/settings/banned-ips.json /opt/minecraft/banned-ips.json
RUN ln -s /opt/minecraft/settings/usercache.json /opt/minecraft/usercache.json
ADD eula.txt /opt/minecraft/eula.txt ENV MINECRAFT_VERSION 1.12.2
ENV MINECRAFT_OPTS -server -Xms4096m -Xmx4096m -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
ENV MINECRAFT_STARTUP_JAR FTBserver-1.12.2-14.23.1.2587.jar VOLUME /opt/minecraft/world
VOLUME /opt/minecraft/settings EXPOSE 25565
EXPOSE 8123 CMD bash /opt/minecraft/ServerStart.sh
Speichern mit strg-x und bestätigen mit j bzw y.
Schritt 2: Weitere Dateien erstellen/herunterladen
settings.sh herunterladen. Diese beinhaltet die Java Startparameter (aktuell auf 4GB min / 6GB max und Quadcoreprozessor gestellt).
wget http://zengtronic.de/files/tuts/ftb_revelations/settings.sh
Danach müsst ihr noch die Datei eula.txt erstellen mit dem inhalt eula=true erstellen.
echo "eula=true" > eula.txt
Schritt 3: Dockerimage kompilieren
sudo docker build -t img_ftb_revelations .
Schritt 4: Dockerimage zum ersten mal starten
sudo docker run --restart=always -itd -v "$pwd/docker-data/ftb-revelations/world:/opt/minecraft/world" -v "$pwd/docker-data/ftb-revelations/settings:/opt/minecraft/settings" -p "25565:25565" -p "8123:8123" --name ftb-revelations img_ftb_revelations
Damit wird der Server heruntergeladen und gestartet. Die Welt und die Einstellungen werden im Ordner docker-data/ftb-revelations/ gespeichert und sind außerhalb des Dockercontainers zugreifbar. Der Name des Containers ist ftb-revelations.
Mit --restart=always wird der FTB-Server mit jedem Serverstart gestartet.
Schritt 5: Minecraftserver einstellen
Nachdem der Server zum ersten mal gestartet ist (ambesten ca 5 Minuten nach Schritt 4 warten) beenden mit:
sudo docker stop ftb-revelations
danach können im in Schritt 4 genannten Ordner die Einstellungen geändert werden. Dort befindet sich unter anderem die Datei server.properties die die Minecraft Server Einstellungen beinhaltet.
Nach dem bearbeiten kann der server wieder mit:
sudo docker start ftb-revelations
gestartet werden.
Um jemanden zum OP zu ernennen muss mit:
sudo docker attach ftb-revelations
auf den Server zugegriffen werden. Danach kann man jemanden mit diesem Befehl zum OP ernennen:
op Spielername
Funktioniert natürlich nur wenn der Server vollständig gestartet ist.
Sonstiges / Befehlsliste
Docker Befehle ( jedes mal noch sudo davor)
docker stop Containername --Stoppt den Container
docker start Containername --Startet den Container
docker attach Containername --Zugriff auf Befehlszeile des Containers
docker ps -a --Listet laufende Container auf (mit -a alle)
docker rm Containername --Löscht den Container
Minecraft Befehle
op player --Ernennt player zum OP
Mehr Befehle findet man in genügend Minecraft Wiki's.
deop player --Entfernt player den OP Status
whitelist player --Fügt player zur Whitelist hinzu
kick player --Kickt player vom server
ban player --Bannt player vom server