A customized Alpine Linux Docker image to manage a Vanilla Minecraft server running on Spigot or PaperMC.
For more information, and to view the Dockerfile and all scripts included in the image, check out the GitHub repo.
Check out the Docker hub page.
To run this server, and manage the server files and properties, please specify a directory on the host to house the Minecraft server files. The following docker command will create a container that will automatically run/build the server when it is started.
NOTE: If the
EULAflag is not added, then on the first run, the server will not fully initialize until the user agrees to the end user licence agreement. After running the commands below, the user needs to edit theeula.txtfile found in the root server directory on the host machine. The valueeula=falseneeds to be changed toeula=true. There is no need to restart the server, just save changes and the server will auto-restart.
#!/bin/bash
dir="FULL-PATH-TO-STORE-SERVER-ON-HOST"
mkdir -p $dir/Minecraft
sudo docker create --name=mc --tty -i \
--restart=always \
-v $dir/Minecraft:/home/Minecraft \
-p 25565:25565 \
-e EULA=true \
projectinitiative/apmc
sudo docker start mc$dir="FULL-PATH-TO-STORE-SERVER-ON-HOST"
mkdir -p $dir\Minecraft
docker create --name=mc --tty -i `
--restart=always `
-v $dir/Minecraft:/home/Minecraft `
-p 25565:25565 `
-e EULA=true `
projectinitiative/apmc
docker start mc| Variable | Description | Value Type Example |
|---|---|---|
| TZ | Timezone | America/Chicago |
| minram | Minimum RAM to allocate to the server | 1G/512M |
| maxram | Maximum RAM to allocate to the server | 1G/512M |
| server_type | Specify which type of server to be downloaded/compiled | vanilla/spigot/paper |
| EULA | Automatically accepts the end user license agreement for the server | true |
| start_script | Path to custom start script (not named start.sh) Usually used for modded server packs with custom start scripts | PATH-TO-START-SCRIPT |
| backup_cron | A crontab pattern for the frequency of which backups are made | 0 */12 * * * |
Aside: Useful crontab generator
NOTE: Environmental variables do not need to be specified to run the server. Default values will be used.
sudo docker create --name=mc ...
...
...
-p 25565:25565 \
-e TZ=America/Chicago \
-e minram=512M \
-e maxram=4G \
-e server_type=paper \
-e EULA=true \
...
...To interact with the command console without being in-game, run the following while the container is running
docker exec -it mc screen -r mc To exit the console safely use CTRL + A then CTRL + D
CMDs that are built in:
start-serverstop-serverrestart-serverupgrade-server
To use the commands listed above, run the following while the container is running
docker exec -it mc CMDNOTE: Pre-built Spigot server jar files can be downloaded from the Spigot website. Move the jar file into the root server directory on the host and rename it
spigot-server.jar. The PaperMC variant can be downloaded from PaperMC. Move the jar file into the root server directory on the host and rename itpaper-server.jar
Creating the container:
create-mc-container.sh "FULL-PATH-TO-STORE-SERVER-ON-HOST"Starting the container:
docker start mcStopping the container:
docker stop mcAdditionally, the server can be stopped, rebuilt, and started again.
rebuild-mc.sh "FULL-PATH-TO-STORE-SERVER-ON-HOST"Creating the container:
create-mc-container.ps1 "FULL-PATH-TO-STORE-SERVER-ON-HOST"Starting the container:
docker start mcStopping the container:
docker stop mcAdditionally, the server can be stopped, rebuilt, and started again.
rebuild-mc.ps1 "FULL-PATH-TO-STORE-SERVER-ON-HOST"