盆暗の雑記帳

趣味や投資の話など雑にアウトプットしていきます

【Java版】Minecraftのサーバーの建て方メモ【Docker】

ホストマシンの環境を汚さず、Docker環境で立てる方法を考えたのでメモ。

MODなし

基本的には、Javaをインストールして、公式から最新のserver.jarをダウンロードして

java -Xmx1024M -Xms1024M -jar server.jar nogui

というコマンドを打てばよい。

Dockerを使う場合は

FROM openjdk:20-slim
WORKDIR /server
CMD java -Xmx1024M -Xms1024M -jar server.jar nogui

というDockerfileと

version: '3.6'
services:
  java:
    build: .
    ports:
      - 25565:25565
    tty: true
    volumes:
      - ./files:/server

というdocker-compose.ymlを用意して、docker-compose upすればよい。

なおserver.jarはvolumesでマウントしているfilesフォルダに入っている想定。

├── Dockerfile
├── docker-compose.yml
└── files
    └── server.jar

MODあり

SpigotMCを使うことで、プラグインサーバー(クライアント側はMODのインストール不要で参加できる)にする。

公式のインストール手順を使う場合、ダウンロードしたBuildTools.jarを展開して自分でビルドする必要があるのが難点

非公式だがビルド済みのものが配布されているようなので、こちらを使うほうが楽だった。

getbukkit.org

├── Dockerfile
├── docker-compose.yml
└── files
    └── spigot-1.20.1.jar

変更点はserver.jarをspigotのjarに変えるだけ。

FROM openjdk:20-slim
WORKDIR /server
CMD java -Xmx4G -Xms4G -jar spigot-1.20.1.jar nogui

その他

ネットワーク

この手のサーバー立てはネットワークでつまりがち。身内でやる場合はHamachiが安定している気がする

便利だったMOD

建築鯖として運用してたのでVoxelSniperというブロックの一括設置・破壊・コピー&ペーストなどが行えるMODが便利でした

KevinDaGame/VoxelSniper-Reimagined Wiki