DockerでMinetestとMinetest realtime mapserverを動かしてリアルタイムで様子を見よう

Posted by nogajun - 2021/10/09

_ 昨日、DockerでMinetestサーバーが動いたと書きましたが夜、寝る前にMinetestの世界をリアルタイムに描画してくれるMapserverのMinetest realtime mapserverのDockerを追加したら、あっさり動きました。

ということでdocker-compose.ymlを載せておきます。mapserver以下の行が追記した部分です。ボリュームでMinetestのworldを共有しているところがポイントですね。

 version: "3"

 services:
     minetest:
         container_name: minetest
         image: registry.gitlab.com/minetest/minetest/server:stable-5
         volumes:
             - "./data:/var/lib/minetest/"
             - "./conf:/etc/minetest/"
         ports:
             - "30000:30000/udp"
     mapserver:
         container_name: mapserver
         image: minetestmapserver/mapserver
         volumes:
             - "./data/.minetest/worlds/world:/minetest"
         working_dir: "/minetest"
         ports:
             - "8080:8080"

これを使って docker-compose up して、ブラウザで http://(Dockerが動いているPCのIP):8080/ にアクセスすればリアルタイムでマップが変わる様子がわかります。

これにmapserver-modを追加すればプレーヤーの位置やラグの表示もできるようになって普通に使えるようになります。

mapserver-modは、アーカイブをダウンロードして展開したら、 data/.minetest/mods/ 以下に移動して、minetest.confに以下を追記すれば使えます。

 mapserver.enable_crafting = true

デフォルトはパッシブモードなので、アクティブモードにする場合はもう少し追記が必要になります。詳しくはドキュメントを参照してください。

標準のsqlite3がどこまでの人数に耐えられるのかわからないけど普通に使えるし、50人、100人という規模でもなく身内で遊ぶぐらいならこれで十分な気がしてきた。