2021-04-09 16:28:17 -05:00
# docker-minecraft
A Dockerfile and some assorted scripts to build a Minecraft Forge server container.
## Usage
Deploy as expected:
```bash
2021-04-09 16:56:32 -05:00
docker run -p 25565:25565 rehashedsalt/minecraft-forge:1.16.5-36.1.4-1.0.0
2021-04-09 16:28:17 -05:00
```
2021-04-09 16:56:32 -05:00
And badda bing, badda boom, you'll have a Minecraft Forge server of whatever the tag is.
2021-05-22 00:14:16 -05:00
The "latest" tag of each version of Minecraft is somewhere along the lines of "1.16.5-36.1.14-master". See Dockerhub for more info.
2021-04-09 16:28:17 -05:00
2021-05-12 23:20:31 -05:00
## Server Console
You can access the server console in a screen session pretty easily:
```bash
docker exec -it mycontainer screen -r minecraft
```
2021-04-09 16:28:17 -05:00
## Application State
For obvious reasons, you'll want to consult the documentation of any mods you have installed, but a majority of application state lives here-ish:
* `/minecraft/world`
* `/minecraft/ops.json` , `whitelist.json` , `banned-ips.json` , `banned-players.json` , etc.
* `/minecraft/logs`
## Environment Variables
variable|description
---|---
`JRE_XMX` |Maximum amount of heap passed to the main Minecraft process
`JRE_XMS` |Minimum heap size passed to the main Minecraft process
2021-04-09 16:54:45 -05:00
`FORGE_PACK_ZIP` |If provided, the URL to a zip or tar.gz file that contains the modpack that needs to be installed. Will be intelligently extracted into the server directory through the magic of `find` .
2021-04-09 16:28:17 -05:00
`ARGS` |Any additional arguments to be passed to the JVM
## Useful Arguments
The following arguments may be useful to pass through `$ARGS` from time to time:
* `-Dfml.queryResult=confirm` - Useful when confirming through world corruption
## Weird Defaults
The default `server.properties` contains the following changes to better facilitate usage in a modded environment:
```
allow-flight=true
difficulty=hard
enable-command-block=true
spawn-protection=0
```
2021-04-09 16:54:45 -05:00
## FAQ
**Why do you download the pack at runtime?**
It allows for transparent upgrades without having to build a whole new container. You may lose container consistency, but you gain simplicity in definition.
Of course, nothing prevents you from just not using this magic variable and instead `FROM` ing this container and building your own pack.
2021-04-09 16:28:17 -05:00
## License
MIT