RustのゲームサーバーをDockerで建てた
目次はありません。
どうも、わたしです。
先日、Rust(軽量でメモリ安全性が担保されているものではない方)が安くなっていたので、仲間内でサーバーを建ててマルチプレイをしよう、ということになりました。
ただ生憎と、現状私の手元には自由に使えるIPv4アドレスの在庫が枯渇していまして、仕方がないので適当なVPSを契約し、そこにサーバーを構築しようとしました。
導入方法を調べてみたところ、大筋としてはSteamCMDを使い、サーバーデータをダウンロードして必要な引数を渡して起動するだけ、と手順自体はシンプルなようでした。
ところが、検索して出てくる記事の多くは、なぜかsnapでSteamCMDをインストールする方法だったり、無駄にsystemdのサービスを増やすようなものだったりと、本当に気持ちが悪いものばかり。
何も考えずに色んなところからコピペしてコマンドを並べているだけなのかと疑うレベルの記事ばかりで、正直うんざりしていました。
さらに、手軽に使えるDockerイメージも現存していないようでしたので、今回作成するに至りました。
私の普段使いの環境がM4 Maxなのですが、ここで一つ問題にぶつかりました。
SteamCMDがARMアーキに対応していなかったのです。
このご時世においてARMのサポートをしていないなんて前時代的ですよね。有り得ない。
とはいえ、嘆いても仕方がないので、ちゃっちゃとDockerfileを書き、互換レイヤを挟んで試みるもうまくいかず。
結局面倒くさくなって適当な8664環境を作って解決しました。
ちなみに、今回の成果物は、全てGitHub上で公開しています。
リポジトリ上に置いてある compose.yaml をコピーしてきてもらい、適宜、環境変数を変えていただければ、そのまま使えます。
詳しいことはREADMEに書いているので、そちらをご参照ください。
これで面倒なことを考えずにRustで遊べますね。
