CurseForge Modpackを導入したMinecraft Java版 サーバ in Docker

2021年12月に確認されたLog4j 脆弱性(Log4jShell)への対応(Minecraft 1.7~1.18を使用する場合)

Minecraft公式から、旧バージョンにおける脆弱性対応手順が案内されています。

Minecraftサーバー

この記事で使用するDockerイメージitzg/minecraft-serverでは、自動的に脆弱性への対応が適用されます。

Minecraftクライアント(CurseForge Appに管理された環境)

CurseForge Appでは、Minecraft向けに対応するパッチが適用されているようです(CurseForge Appが管理するMinecraft公式ランチャーのバージョンを脆弱性対応した新しいものに設定している?)。

We already released a patch to the app

Mod

CurseForge上で脆弱性の影響を受けるModは削除されているようです(独自にlog4jを同梱していたり、特殊な実装をしていたりするものしか影響を受けない気がする)。

to our best knowledge, any vulnerable mod was removed

Modpackを導入して新規ワールド生成

CurseForge Appまたはcurseforge.comから、導入するModpackのServer Pack serverpack000_my_mod_pack.zip をダウンロードしてください。

以下では例としてMinecraft 1.12.2の環境ですが、Modpackに対応した本体バージョンに変更してください。

docker-compose.yml

version: "3.9"
services:
minecraft:
image: itzg/minecraft-server:2022.11.0-java8-jdk
ports:
- "${HOST_MINECRAFT_PORT}:25565"
# - "${HOST_DYNMAP_PORT}:8123"
environment:
EULA: "TRUE"
TZ: ${TZ}
TYPE: "CURSEFORGE" # https://github.com/itzg/docker-minecraft-server#server-types
CF_SERVER_MOD: /modpacks/serverpack000_my_mod_pack.zip
VERSION: "1.12.2" # https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-Changelogs
DIFFICULTY: ${DIFFICULTY}
SERVER_NAME: ${SERVER_NAME}
ENABLE_WHITELIST: ${ENABLE_WHITELIST}
WHITELIST: ${WHITELIST}
OPS: ${OPS}
SPAWN_PROTECTION: ${SPAWN_PROTECTION}
VIEW_DISTANCE: ${VIEW_DISTANCE}
SEED: ${SEED}
MODE: ${MODE}
PVP: ${PVP}
LEVEL_TYPE: ${LEVEL_TYPE}
GENERATOR_SETTINGS: ${GENERATOR_SETTINGS}
ONLINE_MODE: ${ONLINE_MODE}
tty: true
stdin_open: true
restart: always
volumes:
- ./data:/data
- ./modpacks:/modpacks

.env

HOST_MINECRAFT_PORT=0.0.0.0:25565
HOST_DYNMAP_PORT=127.0.0.1:8123
TZ=Asia/Tokyo
SERVER_NAME=my-mod-pack-server
MOTD=
ENABLE_WHITELIST=false
WHITELIST=
OPS=
SPAWN_PROTECTION=0
VIEW_DISTANCE=
SEED=
DIFFICULTY=hard
MODE=survival
PVP=true
LEVEL_TYPE=normal
GENERATOR_SETTINGS=
ONLINE_MODE=true
  • HOST_MINECRAFT_PORT: 外部に直接公開(TCP)
  • HOST_DYNMAP_PORT: リバースプロキシでHTTPS化を想定してローカルループバックアドレスにバインド
  • WHITELIST, OPS: カンマ区切りでプロフィール名を記述

サーバ側Modの追加

ModPackへの追加は、初期化以外のタイミングでは反映されないため、./dataディレクトリのmodsフォルダに、通常のMod導入手順と同様に追加します。

上の.envでは、ブラウザマップModのDynmapForgeをの追加導入を想定しています。