45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Docker Setup
|
|
|
|
In order to run TShock in a docker container, you would need to have mountpoints for
|
|
- `/tshock` (TShock config files, logs and crash reports)
|
|
- `/worlds`
|
|
- `/plugins`
|
|
- `/server` (optional, if you want to mount TShock's cwd)
|
|
|
|
These folders can be mounted using `-v <host_folder>:<container>`
|
|
|
|
Open ports can also be passed through using `-p <host_port>:<container_port>`.
|
|
- `7777` for Terraria
|
|
- `7878` for TShock's REST API
|
|
|
|
For Example:
|
|
```bash
|
|
# Building the image
|
|
docker build -t tshock:linux-amd64 --build-arg TARGETPLATFORM=linux/amd64 .
|
|
|
|
# Running the image
|
|
docker run -p 7777:7777 -p 7878:7878 \
|
|
-v /home/cider/tshock/:/tshock \
|
|
-v /home/cider/.local/share/Terraria/Worlds:/worlds \
|
|
-v /home/cider/tshock/plugins:/plugins \
|
|
--rm -it tshock:linux-amd64 \
|
|
-world /worlds/backflip.wld -motd "OMFG DOCKER"
|
|
```
|
|
|
|
## Building for Other Platforms
|
|
|
|
Using `docker buildx`, you could build [multi-platform images](https://docs.docker.com/build/building/multi-platform/) for TShock.
|
|
|
|
For Example:
|
|
```bash
|
|
# Building the image using buildx and loading it into docker
|
|
sudo docker buildx build -t tshock:linux-arm64 --platform linux/arm64 --load .
|
|
|
|
# Running the image
|
|
docker run -p 7777:7777 -p 7878:7878 \
|
|
-v /home/cider/tshock/:/tshock \
|
|
-v /home/cider/.local/share/Terraria/Worlds:/worlds \
|
|
-v /home/cider/tshock/plugins:/plugins \
|
|
--rm -it tshock:linux-arm64 \
|
|
-world /worlds/backflip.wld -motd "ARM64 ftw"
|
|
```
|