LoginSignup
6
3

More than 3 years have passed since last update.

Terraria のサーバをDockerで建てる

Posted at

Terraria Journey's End最&高すぎだけどなんかMacだといろいろインストールしないとサーバーを建てられないみたいなので、Dockerで建てました。

環境

  • ubuntu-server 20.04 LTS (ホスト)
  • docker version 19.03.9
  • docker-compose version 1.25.0

※Dockerとdocker-composeの導入はここでは載せません。

今回建てるTerrariaサーバ

  • Terraria ver1.4.0.4
  • TSHOCK ver 4.3.26

T-SHOCKとは

Terrariaサーバの大体はT-SHOCKとSteamフレンド経由で建てられているといっても過言ではない(主観)普通に建てるよりも軽いらしい、非常に細かい設定が出来る。ユーザーログイン、荒らし対策やアイテム持ち込み禁止などが設定でき、プラグインにも対応している。

作成

1. フォルダの作成

適当なフォルダ(今回はubuntu-serverという名前)を作成しその下に"docker-compose.yml"を作成。

ubuntu-server
└── docker-compose.yml

最終的にこうなる予定

ubuntu-server
├── docker-compose.yml
└── terraria/
    ├── Worlds(ワールドデータ)
    ├── logs(ログ)
    └── plugins(プラグイン)

2. docker-composeファイルの編集 & サーバ立ち上げ

今回はT-shockのDockerfileがあるのでそれを利用する。
viやnano等のテキストエディタで"docker-compose.yml"を作成する。

version: "3"
services:

  terraria:
      image: ryshe/terraria:latest
      ports:
        - "7777:7777"
      # ボリュームマウントして永続化している
      volumes:
        - ./terraria/Worlds:/root/.local/share/Terraria/Worlds
        - ./terraria/logs:/tshock/logs
        - ./terraria/plugins:/plugins

Terrariaのサーバーを立ち上げる

docker-compose up -d

3. ワールドデータを作成する

Terrariaのサーバを立ち上げているコンテナに入る

docker-compose exec terraria /bin/bash

"/tshock"に入れるのでshでbootstrap.shを実行

sh /bootstrap.sh

質問に答えてワールドを生成していく

※ワールド名は後に使用するので控えておいて下さい。

[Server API] Info Plugin TShock v4.4.0.0 (by The TShock Team) initiated.
Terraria Server v1.4.0.4

n               New World (新規作成)
d <number>      Delete World

Choose World: n (新規作成のnを入力しEnter)

####################
####################

Terraria Server v1.4.0.4

1       Small
2       Medium
3       Large

Choose size: 3 (ワールドのサイズはラージの3で)

####################
####################

Terraria Server v1.4.0.4

1       Classic
2       Expert
3       Master
4       Journey

Choose difficulty: 3(新規追加されたMasterの難易度を選ぶ)

####################
####################

Terraria Server v1.4.0.4

1       Random (ランダム)
2       Corrupt (不浄の地)
3       Crimson (クリムゾン)

Choose world evil: 1(不浄かクリムゾンもしくはランダムを選ぶ今回はランダム)

####################
####################

Terraria Server v1.4.0.4

Enter world name: test-world (ワールド名 ※半角英数字 ※控えておく)

####################
####################

Terraria Server v1.4.0.4

Enter Seed (Leave Blank For Random): (シード値 今回は空)

####################
####################

生成される(省略)

####################
####################

最初のワールド選択に戻ると思うので、Ctrl+Cで抜ける

生成が完了したらコンテナを抜けましょう

exit

4. docker-composeの再編集

コンテナを一旦ダウンさせます

docker-compose down

viやnano等のテキストエディタで再び"docker-compose.yml"を編集する。

version: "3"
services:

  terraria:
      image: ryshe/terraria:latest
      ports:
        - "7777:7777"
      # ボリュームマウントして永続化している
      volumes:
        - ./terraria/Worlds:/root/.local/share/Terraria/Worlds
        - ./terraria/logs:/tshock/logs
        - ./terraria/plugins:/plugins
      # 追加ポイント
      # 先ほどの "ワールド名 + .wld"
      environment:
       WORLD_FILENAME: "test-world.wld"

編集が完了したら再びコンテナを立ち上げる

docker-compose up -d

これで立ち上げ完了

これでDockerでサーバが立ち上げることが出来ました。良いTerrariaライフを!!

6. あとがき

深夜テンションの殴り書きで書いたので不備があるかもしれません、なにか問題があればコメントでお願いします。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3