Docker で Minecraft サーバーを立てる
以前のホームページで公開していたスライドの読み物版。公開日は原稿に記載なし。
マイクラ鯖運用 with GitHub
zztkm
いきなり本題
僕はマイクラ鯖をGitHubで運用しています。 今日はどんな感じでやっているのかを紹介します。
従来のマイクラ鯖運用のここがだるい
-
環境の再現
-
バージョンアップ
Dockerなど使わずに運用していた時代
ごみ
じゃあどうしたいか?
GitHub で IaC したいし、デプロイも簡単にしたい!
最終的な構成は以下のようになった。
-
VPS: Vultr
-
ソース管理 GitHub
-
Docker & Docker Compose
- Image: itzg/minecraft-server
-
MCサーバー: PaperMC
- なんか軽いらしいので採用した
- 色々プラグインを導入している
-
デプロイは compose-cd で自動化
-
Docker image も Renovate で自動更新
VPS について
VPS は Vultr を使っている。
- Vultr Cloud Compute
- 月額20$
- 2 vCPU 4GB RAM 80GB SSD
- Oracle Cloud への移行も検討中
MC鯖は Vultr に docker & docker compose をインストールして、そこで動かしている。
SSH 接続には、Tailscale SSH を利用している。
Tailscale SSH を使うと鍵管理が不要になってめっちゃ楽。導入も楽なので、VPSとか借りてなんかやりたいって人におすすめです。
GitHub でやってること
- MC鯖用 docker-compose.yml などのソース管理
- MC鯖のDockerイメージに更新があったら、RenovateがPRを作ってくれる
- Renovate まじ便利
- 自分はPRをレビューしてマージするだけ
https://github.com/pistachiostudio/genkai-mc-server/pull/42
自動デプロイ
compose-cd が git pull して更新があったら、docker compose down & up してくれる
監視
巷ではオブザーバビリティとか言われてますがなんもわかってないので、とにかく無料で使えてそれっぽいやつを使ってみてる。 わかってきたら良い感じに調整していくという方針で色々試してる。詳しい人いたら教えてクレメンス。
導入したやつ
- NewRelic
- ログ監視に使ってる
- Prometheus
- 直接導入はしていないが、UnifiedMetrics というプラグインで使われてる(はず)
- Grafana
- Prometheus と連携して使っている
- 自前で建てずに、Grafana Cloud を使っている
- サーバーに何人入ってるとか、メモリの状態とか色々見れるようにしてる
-
楽しい
-
Grafanaのダッシュボードはこんな感じ

まだ解決できていない課題
- バックアップがでかくなっていくのでVPSのSSDを食いつぶしやがるのでどうにかしたい
- チート対策
- その他色々 GitHub Issues に書いてある
まとめ
まとめ
-
ゲームの鯖運用するだけでも色々学ぶきっかけになる
-
マイクラ鯖管理してると、マイクラより楽しくなってきてマイクラをやらなくなる(諸説あり
-
監視などを導入すると、マイクラ鯖の状態がわかって楽しいし、オブザーバビリティを学ぶきっかけになる
-
マイクラはやらなくなる
-
プラグイン自作したくなってくる
ということでぜひ遊びにきてください!
-
server address:
genkai.dev- For Bedrock Edition
- Port: 19132
- For Bedrock Edition
-
pistachiostudio/genkai-mc-server:
Genkai mc serverfrom Pistachio Gaming
参考
その他宣伝
-
inm: inventory manager