In my adventure to put more homelab in docker, I moved our modded minecraft setup to docker.
Getting Mods ¶ #
So far I have found all of our mods from curse forge. modpacks make getting multiple mods working together much easier, someone else has already vetted a pack of often times 100+ mods that all play well together. I have yet to get these working in docker, I will, but for not I just have individual mods.
download file ¶ #
under the hood docker is using wget to get the mod. The link you click on from curseforge will block wget. What I do is pop open the devtools (f12 in chrome), click on the network tab, click the download link on the web page, and watch the real link show up.
Docker-compose ¶ #
I am using docker compose, it makes the command much easier to start, and all the things needed stored in a file. I am not using compose to run multiple things, just for the simple start command.
Create a directory for your server and add the following to a
docker-compose.yml file.
version: "3.8"
services:
mc:
container_name: walkercraft
image: itzg/minecraft-server
ports:
- 25565:25565
environment:
EULA: "TRUE"
TYPE: "FORGE"
VERSION: 1.16.5
MODS_FILE: /extras/mods.txt
REMOVE_OLD_MODS: "true"
tty: true
stdin_open: true
restart: unless-stopped
ports:
- 25565:25565
volumes:
- ./minecraft-data:/data
- ./mods.txt:/extras/mods.txt:ro
volumes:
data:
mods.txt ¶ #
Once you have your mod file link from the network tab add them to a mods.txt file next to your docker-compose file.
https://media.forgecdn.net/files/3620/189/engineersdecor-1.16.5-1.1.16.jar
start your server ¶ #
Once you have made it this far starting the server is pretty simple.
docker compose up -d
kill your server ¶ #
If your still in the same directory, taking down the server should be pretty easy as well.
docker compose down
# if that does not work you can kill it
docker ps
# copy the id of your container
docker kill <id>