UbuntuでMinecraft(統合版)サーバをたてる(x86)
「お父さん、マイクラやりたい」
「よし、父ちゃんが家の中で遊ぶマルチサーバ建ててあげよう」
息子がゲームしたいと言ったらサーバを立ち上げる、これがエンジニアなりの遊び方。
2010年くらいの古いMacbookにubuntuをインストールして Minecraft Servr(統合版)
をインストールしてみた。
準備
直接インストールではなく、dockerでコンテナとして立ち上げます。
コンテナとして実行することで、マルチサーバ環境も可能です。
まずはdocker
とdocker-compose
コマンドを使えるようにしておく。
sudo apt install docker docker-compose
インストールするだけだとroot
ユーザしか使えないので、権限付与は
dockerコマンドが使えない(Couldn't connect to Docker daemon)
の記事をどうぞ。
docker-comp;ose.ymlの作成
Ubuntuにログインし、適当なディレクトリに docker-compose.yml
を作成。
小1の息子とふんわり遊ぶのでcreative
モードにしています。
version: '3.4'
services:
bds:
restart: always
image: itzg/minecraft-bedrock-server:latest
environment:
SERVER_NAME: SERVER1
EULA: "TRUE"
GAMEMODE: creative
DIFFICULTY: normal
LEVEL_NAME: MY CREATIVE
# booleanのはずだが受け付けてくれない
# ALLOW_CHEATS: TRUE
# ONLINE_MODE: TRUE
ports:
- 19132:19132/udp
volumes:
- ./data:/data
stdin_open: true
tty: true
必須ではないですが、SERVER_NAME
くらいは設定しておいたほうがいいです。
LAN内で検索するときどのサーバだっけ?ってのを回避できます。
その他のオプションは公式サイト https://hub.docker.com/r/itzg/minecraft-bedrock-server を参照してください。
server.properties
をいじらなくてもいろいろな設定が使えます。
現バージョンではスラッシュコマンドを使うプログラミングで必須のALLOW_CHEATS
が有効にできないようです。
booleanで設定すると Require String
で弾かれるし、文字列で true
にしてもInvalid
になる。
あとで server.properties
を書き換えましょう。
ビルドしてスタート
docker-compose.yml
に設定を書き込んだら、ビルドしてスタートです。
docker-compose up --build --no-start
# ここで server.propertiesを書き換える
docker-compose start
docker-compose logs -f
server.properties
を書き換えたい場合は上記コメントの位置で書き換えます。
docker-compose.yml
では設定できなかったALLOW_CHEATS
なども data/server.properties
をいじればOKです。
いじったらコンテナの再起動が必要です。
これでサーバが起動します。
iPad版では「サーバ」タブでサーバを追加するだけで、もう使えるようになりました!
フレンドタブにLAN内のサーバが表示されることがありますが、表示されないときもあり安定しないのでサーバ追加がおすすめです。
それでもプレイを続けているうちにサーバに接続できなくなったときは、ゲームを再起動するとだいたい復活します。
複数インスタンスを立ち上げたい
息子とはcreative
モードでほんわかプレイ、survival
モードでもう一つインスタンスが欲しい場合。
- もう一つディレクトリを作成
docker-compose.yml
をコピーしてきて、設定のみ書き換え- ポートはかぶったら動かないので書き換え必須
- ビルド&スタート
これだけでもう一つ立ち上がります。
ポート番号のみ変更が必要、あとはお好きなように書き換えてください。
ports:
# 通常ポートとかぶらないように19234ポートで待ち構える
- 19234:19132/udp
おまけ・switchとかはそのままでは繋げない
Windows版やiPad版は自分でサーバを追加することができますが、switch版は推奨サーバ以外は表示されず、自由に追加することもできません。
DNS設定をごにょごにょすれば無改造でつなぐことはできたんですが、性善説に基づいて管理できないDNSを経由して接続することになるので、セキュリティ的に不安があるのでここでは書きません。
(ググれば出てきますがおすすめはしません。OSSなので、コードの中身をチェックして自分でDNS建てられるならOK)
参考サイト
docker image: https://hub.docker.com/r/itzg/minecraft-bedrock-server