Skip to content

Sets up a Minecraft server based on the debian-slim image

License

Notifications You must be signed in to change notification settings

krislamo/minecraft

Repository files navigation

Minecraft Container Image

Quick Start

Assume a clean repository (i.e., without .env and plugins.json in the top directory), and Docker cache. You can use make clean to clear specific default images and prune the unused build cache. However, you'll still need to inspect all containers and images to ensure you've removed them all.

  • make clean only removes certain images and prunes the builder cache.

Steps

  1. Configure your build:

    make configure
    

    This defaults to make configure BUILD=basic, but if you have directories in ./scratch, you can specify those build names here. Repository-included builds are in./builds, but it's advised to copy ./builds/basic or whichever build configuration you are basing off and copy it into ./scratch/X to control your settings apart from the repository. This separation allows you to manage your configurations independently and avoid overwriting repository defaults.

  2. Build the PaperMC server:

    make paper
    

    This builds the PaperMC server, which is likely what you want unless you prefer a 100% vanilla server experience. PaperMC is recommended for its performance benefits and support for Bukkit API server mods. Both EssentialsX and WorldGuard suggest using Paper for better performance and stability.

  3. (Optional) Install for testing:

    make install
    

    This runs docker compose up -d and brings up a minecraft-minecraft-1 network/container compose stack using the .env and plugins.json in the root of the repository. It includes settings for image overrides, the EULA agreement, and a DEBUG option for the custom entrypoint.sh script, Java options (defaulting to -Xms1G -Xmx2G), and the ability to set any server.properties file entry using the SETTINGS_ prefix in the compose file. The purpose of make install is for testing only, and it is advised not to rely on it for managing an actual server deployment. You will likely want to add other settings not specified in the docker-compose.yml and manage your own compose files.

Additional Notes

Image Management

All images are tagged with localhost/minecraft, etc. It's acceptable not to override these default image names and just tag your own versions after building the localhost images. The images will include git hash information for extra traceability.

After using the quick start, you'll get something like this:

$ docker image ls
REPOSITORY                TAG            IMAGE ID       CREATED          SIZE
localhost/minecraft       1.20.1-paper   814edda474c4   9 seconds ago    568MB
localhost/minecraft-jre   latest         50350d8d3947   30 seconds ago   379MB

It is advisable to tag your own images and push them to a private container repository, as you'll want to avoid pushing these images to a public DockerHub repository due to the Minecraft EULA with typical proprietary software non-redistribution rules.

docker tag localhost/minecraft:1.20.1-paper example.org/minecraft:1.20.1-paper
docker push example.org/minecraft:1.20.1-paper

License

This project is licensed under the GPLv3 License. See the LICENSE file for details.

About

Sets up a Minecraft server based on the debian-slim image

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published