docker compose で立ち上げるメモ
参考のURLにデフォルトでsqliteで保存されるとあったが自分もmysqlがいいので立ち上げて変更
docker-compose.yml
version: "3" services: terraria: image: ryshe/terraria:tshock-1.4.4.9-5.2.0-3 ports: - "7777:7777" volumes: - ./Worlds:/root/.local/share/Terraria/Worlds - ./logs:/tshock/logs - ./plugins:/plugins environment: WORLD_FILENAME: "pistel.wld" TZ: "Asia/Tokyo" depends_on: mysql: condition: service_healthy stdin_open: true tty: true restart: unless-stopped mysql: image: mysql:8.0.33 ports: - "3306" command: - "--skip-log-bin" - "--slow_query_log=1" volumes: - mysql:/var/lib/mysql - ./mysql/logs:/var/log/mysql - ./mysql/config:/etc/mysql/conf.d environment: MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: terraria MYSQL_RANDOM_ROOT_PASSWORD: true healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "user", "-ppassword"] timeout: 20s retries: 10 restart: unless-stopped volumes: mysql:
下記コマンドをupの前に叩く
-vで渡すのはdocker-composeで定義したworldsのもの、pistel.wldはワールド名、autocreateはワールドサイズ
ref: https://github.com/ryansheehan/terraria
sudo docker run -it -p 7777:7777 --rm -v ./Worlds:/root/.local/share/Terraria/Worlds ryshe/terraria:tshock-1.4.4.9-5.2.0-3 -world /root/.local/share/Terraria/Worlds/pistel.wld -autocreate 2
立ち上がったらexitで抜ける
そのあとdocker compose up -d で起動する
ホストマシンのWorldsにデータがディレクトリがあるのでWorlds/config.jsonを変更する
ServerPassword
設定したらワールドパスワードができる
MaxSlots
ログインできる人数 8なので16に変更した
ServerName
一応名前つけた
"SpawnProtection": false,
このイメージだとデフォルトで初期スポーンが壊せないようになってる、壊せていいのでtrue
参考1: https://blog.aoirint.com/entry/2021/terraria_tshock_docker/