Jef Roosens fa44bd7b0c | ||
---|---|---|
.. | ||
.env.example | ||
Dockerfile | ||
README.md | ||
docker-compose.yml |
README.md
docker-mc-fabric
This repository helps you easily setup a modded Minecraft server using the Fabric mod loader.
Installing docker
You can follow the instructions here.
Building the image
To build the image, you must specify the Fabric version using the VERSION
build argument. You can either do this using docker
:
docker build -t mc-fabric-server:latest --build-arg VERSION=0.6.1.51 .
or using docker-compose
, by specifying the argument in the
docker-compose.yml
file and running:
docker-compose build
See the provided docker-compose.yml
file for an example of how to specify the
build argument.
Useful mount points
The container has three useful mount points:
/mc/config
: this is where all server config files reside./mc/config/mods
: this is where all mods should be placed./mc/worlds
: this is where the world files are stored.
I recommend mounting these to either a local directory or a volume, as to not lose the server data.
Environment variables
The container has two environment variables which can be set, namely XMS
and
XMX
. If XMX
is not set, it will use XMS
's value by default. Note that
their value is expected to be an integer, which is then used as a quantity for
gigabytes. Therefore, only gigabyte precision is possible.
Java flags
I use the Java flags defined
here.
If you don't agree with this decision, you can change the ENTRYPOINT
at the
end of the Dockerfile
to the following:
ENTRYPOINT java \
-Xms"${XMS}G" \
-Xmx"${XMX:-$XMS}G" \
-jar fabric-server-launch.jar \
--universe /mc/worlds \
--nogui
This will only use the flags absolutely necessary, while still allowing you to tweak the memory variables.
Running the server
docker
You can start the server with the following command:
docker run \
--rm \
--interactive \
--tty \
--publish '25565:25565' \
--detach \
mc-fabric-server:latest
Or, more compact:
docker run --rm -dit -p '25565:25565' mc-fabric-server:latest
This will start the server and run it in the background.
docker-compose
If you prefer to use docker-compose
(which I recommend), you can use the
provided docker-compose.yml
file and edit it to suit your needs. By default,
it creates volumes for the three major mount points, and opens up port 25565
.
Then, you can start the server using docker-compose up --detach
or
docker-compose up -d
, because no one likes typing long commands.