A quick guide on spinning up a GreedyCraft server in docker with the itzg/docker-minecraft-server container and docker-compose on Linux.
- Download the GreedyCraft server files zip file.
- Extract the files to a temporary folder. We need to make some changes.
- Rename
run-linux.sh
torun.sh
This is the shell file the docker container will expect, if you do not rename the file, the server will fail to start. - Edit run.sh to include the JVM custom flags. See the
README_SERVER_INSALLATION.txt
for more information about this. For example, assuming a 20GB allocation you could use:
- Rename
java -Xmx20G -Xms20G -Xss4M -Dfile.encoding=GBK -Dsun.rmi.dgc.server.gcInterval=1800000 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -XX:+UseAdaptiveGCBoundary -XX:G1HeapRegionSize=32M -jar forge-1.12.2-14.23.5.2855.jar nogui
- Edit the
server.properties
files per theREADME_SERVER_INSALLATION.txt
file. As of this writing, ensure your server.properties has the following lines somewhere in it:
difficulty=3
level-type=BIOMESOP
enable-command-block=true
allow-flight=true
- Re-zip your files. Name the zip file something like greedy.zip. The file structure in this zip should mirror the one you downloaded.
- Copy this zip file wherever you intend your server files to be. For example
/var/docker/greedycraft
- Edit your
docker-compose.yml
file and add your configurations. For example, if using 20GB of memory and a data directory of/var/docker/greedycraft
and a customized server zip file at/var/docker/greedycraft/greedy.zip
adocker-compose.yml
file would look something like (Customize memory and such as needed!):
version: "3"
services:
greedycraft:
image: itzg/minecraft-server:java8
container_name: greedycraft
ports:
- "25565:25565"
restart: unless-stopped
environment:
EULA: "TRUE"
SNOOPER_ENABLED: "FALSE"
MAX_MEMORY: "20G"
ENABLE_ROLLING_LOGS: "TRUE"
ENABLE_AUTOPAUSE: "FALSE"
OVERRIDE_SERVER_PROPERTIES: "TRUE"
MAX_TICK_TIME: "-1"
MAX_PLAYERS: "32"
TYPE: "CURSEFORGE"
CF_SERVER_MOD: "greedy.zip"
VERSION: "1.12.2"
volumes:
- "/var/docker/greedycraft:/data"
networks:
- external
networks:
external:
- If all is well, you should be able to start your server by reloading your compose file by running
docker-compose up -d
from the same directory as yourdocker-compose.yml
file. - Monitor your server with
docker logs greedycraft
assuming you named the containergreedycraft
like in the example above. If you see repeating logs anddocker container ls -a
shows your container either restarting or with a short uptime, you may have an issue. Stop the container and review the logs to troubleshoot. If you seeStopping aura thread for dim xxx
however, then you should be good to go! (Assuming no firewall issues and port-forwarding was setup correctly if running across networks, but those are outside the scope of this quick-guide.)