CurseForge Modpackを導入したMinecraft Java版 サーバ in Docker
- 前回の記事: https://blog.aoirint.com/entry/2021/minecraft_server/
- https://hub.docker.com/r/itzg/minecraft-server
- https://github.com/itzg/docker-minecraft-server
- 例: https://github.com/aoirint/minecraft-server-pixelmon-cj
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に対応した本体バージョンに変更してください。
- Minecraft公式リリースノート: https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-Changelogs
docker-compose.yml
version: "3.9"services:minecraft:image: itzg/minecraft-server:2022.11.0-java8-jdkports:- "${HOST_MINECRAFT_PORT}:25565"# - "${HOST_DYNMAP_PORT}:8123"environment:EULA: "TRUE"TZ: ${TZ}TYPE: "CURSEFORGE" # https://github.com/itzg/docker-minecraft-server#server-typesCF_SERVER_MOD: /modpacks/serverpack000_my_mod_pack.zipVERSION: "1.12.2" # https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-ChangelogsDIFFICULTY: ${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: truestdin_open: truerestart: alwaysvolumes:- ./data:/data- ./modpacks:/modpacks
.env
HOST_MINECRAFT_PORT=0.0.0.0:25565HOST_DYNMAP_PORT=127.0.0.1:8123TZ=Asia/TokyoSERVER_NAME=my-mod-pack-serverMOTD=ENABLE_WHITELIST=falseWHITELIST=OPS=SPAWN_PROTECTION=0VIEW_DISTANCE=SEED=DIFFICULTY=hardMODE=survivalPVP=trueLEVEL_TYPE=normalGENERATOR_SETTINGS=ONLINE_MODE=true
- HOST_MINECRAFT_PORT: 外部に直接公開(TCP)
- HOST_DYNMAP_PORT: リバースプロキシでHTTPS化を想定してローカルループバックアドレスにバインド
- WHITELIST, OPS: カンマ区切りでプロフィール名を記述
サーバ側Modの追加
ModPackへの追加は、初期化以外のタイミングでは反映されないため、./data
ディレクトリのmods
フォルダに、通常のMod導入手順と同様に追加します。
上の.env
では、ブラウザマップModのDynmapForgeをの追加導入を想定しています。