docker application - minecraft + mcupdater
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Wolf edbde3bae7 example dynmap configuration 1 year ago
override example dynmap configuration 1 year ago
.dockerignore initial attempt 1 year ago
Dockerfile slight reorganization 1 year ago initial attempt 1 year ago title includes mcupdater 1 year ago

GitHub | DockerHub | unRAID

Minecraft+MCUpdater Docker

This docker hosts a Minecraft Java server along with Minecraft Forge for mod installation. Included is an nginx web server to host the mod files and xml description so your players will be able to easily join your custom modpack with MCUpdater. MCUpdater-CLI is not used to handle the server side to avoid file duplication and because the publicly accessible URLs used in the modpack descriptor xml may not be accessible from the docker itself.

Certbot (LetsEncrypt) is installed to handle obtaining SSL certs in case this is your only web docker. If you plan on hosting multiple applications/dockers, though I suggest having one nginx-ssl docker that is publicly visible and handles the SSL certs for all domains. That docker can then proxy all your other nginx dockers which would actually be running on non-public IPs under plain HTTP.

Modpack Configuration

Modpacks should be configured under {data}/modpack/{name}/ and use the same folder structure as MCUpdater.

  • ./mods/*: Required Mods - Client/Server
  • ./optional/*: Optional Mods - Client/Server (Will Be Installed For Server, Optional For Client)
  • ./server/*: Required Mods - Server
  • ./client/*: Optional Mods - Client
  • ./config/*: Configuration Files (Suggest Only Putting Modified/Needed Configs)
  • ./changelog: Changelog (Optional)
  • ./description: Description (Optional)

You can also add a zipfile with the same name as the modpack ({data}/modpack/{name}.zip) in the modpack folder and this will be extracted into the root of both the client and server for more complicated setups.

When the docker starts, symlinks are used to allow the server instance to access the mod files (to avoid needless copying). An information file (including the changelog, if any) will be available on the HTTP(S) port and will include the verbatim URL for end-users to enter into the MCUpdater client. If no news URL is supplied, this index will also function as the news page.

Server Configuration

Servers (properties, whitelist, ops, etc.) should be configured under {data}/server/{url}/. You can find crash logs and other data there as well just like with a normal Minecraft server.


See the base image for additional settings.

  • MC_SERVER: The user-accessible hostname or IP (and port if not default) needed to connect to the server.
  • MODPACK_URL_DL: The user-accessible URL to this HTTP(S) server base (for downloads).
  • MODPACK_URL_NEWS: The user-accessible URL to modpack or server news page.
  • USE_MODPACK: Modpack Name
  • VERSION: Minecraft Forge Version (i.e. 1.2.12-latest, 1.7.10-recommended, 1.10.2-, etc.)
  • JAVA_OPTS: Arguments to pass to Java.

Mount Points

  • /mnt/config: Configuration Volume
  • /mnt/data: Data/Minecraft Volume

Why two mountpoints? You can have multiple Minecraft dockers all sharing the same data volume (but having separate configuration volumes). This will allow them to share the same Forge libraries and even same modpacks without needless file duplication.