Factorioには複数人が一つのマップで同時にプレイすることができるマルチプレイモードがあります。
マルチプレイモードでは、サーバーをFactorioのゲーム内でホストするモードの他に専用のサーバープログラムを使用してゲームとは切り離した状態でホストするHeadless(ヘッドレス)モードがあります。
今回はHeadlessのサーバープログラムをDocker上でホストしたいと思います。
(前記事で挫折したものをDockerで成功させることにしました)
目次
忙しい人向けの結論
# docker pull dtandersen/factorio
# mkdir -p /opt/factorio
# chown 845:845 /opt/factorio
# docker run -d -p 34197:34197/udp -v /opt/factorio:/factorio --name factorio --restart=always dtandersen/factorio
事前準備
以下のことができている前提です。
- サーバー側のポート(34197/UDP)が解放されている。(ルーター、firewall-cmdなど)
- サーバーにsshにて接続ができる。
- ある程度Linuxの操作についてわかる。
- 最低限の英語がわかる。
- SteamでFactorioを購入済
- Dockerがシステムにインストール済
基本rootで作業します。 (#で始まるコマンドはスーパーユーザー権限です。 $は一般ユーザー権限)
やること(目的)
- FactorioのHeadless ServerをDocker上で動かす (Docker Hub上のイメージを使用)
- 今回は単純に動かすところまで。
自分向けFirewall-cmd設定メモ
# firewall-cmd --permanent --add-port=34197/udp
success
# firewall-cmd --reload
success
#firewall-cmd --list-all (解放できたか確認)
DockerイメージをDocker Hubから手に入れる
Docker Hubでfactorioを検索したところ
https://hub.docker.com/r/dtandersen/factorio
が一番ダウンロードされていて、最新のfactorioのバージョンにも追従しているので、それを使うことにします。
# docker pull dtandersen/factorio
作業ディレクトリの作成と実行
とりあえず、Docker HubのREADMEに書いてあるやり方を参考にしてやります。
# mkdir -p /opt/factorio # chown 845:845 /opt/factorio # docker run -d \ -p 34197:34197/udp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ dtandersen/factorio
はい、動きました。
まとめ
もうまとめ書く余力もない…
ただ、分かったことは…
Dockerは神
以上です。
コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤
橋本 直哉, 須江 信洋, 前佛 雅人, 境川 章一郎, 佐藤 聖規, 山田 修司, 青山 尚暉, 市川 豊, 平岡 大祐, 福田 潔, 矢野 哲朗
4,000円(01/18 02:47時点)
発売日: 2018/03/15
Amazonの情報を掲載しています
コメント