Latest (0.4.2a) The Ferret Buisness server containerized for Docker.
Currently, this is the only working option to run TFB, because the installation script is broken,
see this issue.
Git repository: https://github.com/ChekeredList71/the-ferret-buisness-docker
Docker Hub: https://hub.docker.com/r/chekeredlist71/the-ferret-buisness-docker
1a. with Docker compose:
services:
the-ferret-buisness-server:
image: chekeredlist71/the-ferret-buisness-docker
container_name: theferretbuisness # optional
ports:
- 25565:25565
volumes:
- /some/path:/data
restart: no
1b. or with Docker run:
docker run --name theferretbuisness -p 25565:25565 -v /some/path:/data --restart no -d chekeredlist71/the-ferret-buisness-docker
Make sure, that
/some/path
is owned by the user with 1212 UID and 1212 GID (or run the container with some other user), otherwise the bind mount won't work.
2. wait until the server starts (new logs stop coming), then you should see this message:
[xx:yy:zz] [Thread-33/INFO] [FTBU]: Loaded 0 badges in X ms!
When running the container in detached
-d
mode, you can usedocker logs container_name
ordocker compose logs
to see, what it's doing.
3. Connect to your server on 25565
by default.
Next time, you would run the server the same way.
Don't worry about using docker stop container_name
or docker compose down
, they stop the container gracefully,
because I've handled that in the ENTRYPOINT script. Though by default, Docker only waits 10 seconds for this.
If your server gets so big, that it takes longer to save, then increase the stop timeout
like this:
for Docker run:
docker stop --timeout 30 container_name
for Compose:
services:
the-ferret-buisness-server:
...
stop_grace_period: 30s # waits for 30 sec before killing the container
Note: Graceful stopping only works, when the server accepts the
stop
command. So not while the world is being generated.
You can use the following environment variables in your docker run
command or compose file:
name | default value | used for |
---|---|---|
MOTD | "The Ferret Buisness (0.4.2a) server on Docker" | sets the MOTD text on your server |
LEVEL | word | set the level-name parameter in server.propeties |
OPS1 | none | Add list of OPs to ops.txt (that the server imports to ops.json , ignoring already OP users). Use it like this: NewOPUser1,NewOPuser2 . |
ONLINEMODE | default in server.propeties |
sets the online-mode parameter in server.propeties (true or false ) |
For some reason, when I downloaded the modpack, my client had a missing mod: questbook{2.1.1-1.7.10}
[00:26:18] [Netty IO #2/INFO] [FML]: Attempting connection with missing mods [questbook] at CLIENT
[00:26:18] [Netty IO #2/INFO] [FML]: Rejecting connection CLIENT: [FMLMod:questbook{2.1.1-1.7.10}]
To solve this, copy over The Ferret Business 0.4.2a - Release Server/mods/questbook-2.1.1-1.7.10.jar
to the client mods folder.
https://github.com/TrueOsiris/docker-minecraft-skyfactory4 - for the startup script's ENV variable handling and Dockerfile structure
https://github.com/CaiganMythFang - for creating the modpack
Footnotes
-
If you want to take OP right from someone, make sure to remove the player from
ops.json
too, not just from the environment variable. ↩