LoginSignup
18
18

More than 5 years have passed since last update.

Docker と Alpine Linux で Factorio server を動かす

Last updated at Posted at 2016-04-24

最近 Factorio が流行っていますね。
私の研究室でもインフラエンジニアの募集があったので、ついつい購入してしまいました。
Factorioの研究は進むのに、大学の研究は全く進みません。困りました。

Factorio の headless server はバイナリファイル一枚で動いているので、そこまでインストールに時間はかかりません。
しかし CoreOS の中にバイナリを置きたくないのと、バージョン追従のことを考えて Docker image を作成しました。

Dockerhub: https://hub.docker.com/r/munisystem/factorio/
Github: https://github.com/munisystem/docker-factorio-server

使い方

$ docker run -d \
   -v /srv/docker/factorio/save:/factorio/saves \
   -p 34197:34197/udp \
   munisystem/factorio:stable

このコマンドで

  • マップデータの作成
  • サーバーの起動

をいっぺんに行うことができます。

また docker-compose がインストールされている場合は、

$ wget https://raw.githubusercontent.com/munisystem/docker-factorio-server/stable/docker-compose.yml
$ docker-compose up -d

で動かすこともできます。

引数が与えられている場合はバイナリを直接叩くようになっています。
すでにサーバーを運用していてマップデータが手元にある場合は、

$ docker run -d \
   -v /srv/docker/factorio/save:/factorio/saves \
   -p 34197:34197/udp \
   munisystem/factorio:stable --start-server <savedata>

のような形で起動してください。

イメージの作成

イメージのサイズを小さくしたかったので、Alpine Linux を使うことにしました。
Alpine Linux については以下の記事が参考になります。
http://qiita.com/asakaguchi/items/484ba262965ef3823f61

Factorio の headless server は glibc があれば動くようなのですが、Alpine Linux には glibc が入っていません。
Dockerhub を覗いていたらglibc インストール済みイメージ を見つけたので、今回はこれをベースイメージにしています。

今回作成した Dockerfile は以下になります。

FROM frolvlad/alpine-glibc:alpine-3.3_glibc-2.23

MAINTAINER munisystem

ENV APP_VER 0.12.30

RUN apk --update add wget && \
    wget --no-check-certificate -O /tmp/factorio.tar.gz https://www.factorio.com/get-download/`echo $APP_VER`/headless/linux64 && \
    tar zxvf /tmp/factorio.tar.gz && \
    apk del wget && \
    rm -rf /var/cache/apk/* /tmp/*

WORKDIR factorio
COPY ./start.sh /factorio/start.sh

EXPOSE 34197/udp

ENTRYPOINT ["./start.sh"]

イメージサイズは 24MB(Dockerhub調べ) になります。
とても軽量ですね。

まとめ

docker で簡単にマルチプレイ用の環境を作ることができます。
みなさんも汗水たらして工場運営しましょう。
時間泥棒とか言わない。

18
18
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
18
18