Terraria TShockサーバをdocker-composeで立てる
https://github.com/Pryaxis/TShock https://hub.docker.com/r/ryshe/terraria/ 上記URLから最新(もしくは対応する)バージョンを確認して、イメージタグのバージョンを変更する。 既存のワールドを使用する場合は、./data/worlds/に.wldファイルを配置し、WORLD_FILENAMEを変更する。 docker-compose.yml version: '3.9' services: terraria: image: ryshe/terraria:tshock-1.4.2.3-4.5.5 tty: true stdin_open: true restart: always ports: - '7777:7777' volumes: - '${WORLD_DIR:-./data/worlds}:/root/.local/share/Terraria/Worlds' - '${LOG_DIR:-./data/logs}:/tshock/logs' - '${BACKUP_DIR:-./data/backups}:/tshock/backups' - '${PLUGIN_DIR:-./data/plugins}:/plugins' environment: TZ: 'Asia/Tokyo' WORLD_FILENAME: 'MyWorldName.wld' ワールドの新規作成 autocreateオプションにはワールドサイズを数値で指定する(1: Small, 2: Medium, 3: Large)。 ここではSmallを指定している。 環境変数WORLD_FILENAMEが設定されていると実行に失敗するので、-e WORLD_FILENAME=で外しておく。 docker-compose run --rm -e WORLD_FILENAME= terraria -world /root/.local/share/Terraria/Worlds/MyWorldName.wld -autocreate 1 作成完了後、サーバが起動し、サーバコンソールが開く。 バックグラウンド起動にするため、ここでは一旦サーバを停止しておく。 サーバの起動 docker-compose up -d docker-compose logs -f tail -f data/logs/*.log サーバコンソールを開く Dockerコンテナ名を調べる。ここでは、tshock_terraria_1とする。 docker-compose ps 以下コマンドでサーバコンソールが開く。 Ctrl+cするとサーバが停止してしまうので、脱出するときはCtrl+p Ctrl+qを押す。 docker attach tshock_terraria_1 設定・権限の変更 TShockにはバニラと異なる細かいデフォルト設定や権限機能があるので注意。 設定では、デフォルトで初期スポーン地点保護が有効化、墓生成が無効化されている。 権限では、デフォルトでNPCの部屋割り当て、ボス召喚などが無効化されている。 また、TShockのバージョンによってコマンドや設定方法に差異がある。 ...