ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

docker-minecraft-server 环境变量完全指南:从基础配置到 Modpack 部署的权威参考

docker-minecraft-server 环境变量完全指南:从基础配置到 Modpack 部署的权威参考 docker-minecraft-server 环境变量完全指南从基础配置到 Modpack 部署的权威参考【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server本篇指南围绕itzg/docker-minecraft-server镜像的环境变量总览文档展开逐项讲解该镜像暴露的全部核心环境变量包括通用运行参数、服务器行为、日志、JVM 内存与 GC、白名单、RCON、Auto-Pause/Auto-Stop 以及 CurseForge 自动部署等模块。读完本文你将能精确理解每个变量的默认值、作用域与底层实现并据此写出可直接运行、可维护的 docker run 命令或 compose 配置。说明docs/variables.md是镜像中历史最久、覆盖面最广的变量速查表由社区手工维护个别条目可能滞后。本文在保留其全部条目与默认值的基础上结合仓库内启动脚本、最终执行脚本和属性映射定义等源码证据进行核实与补充更细节的专题请优先参考各小节给出的分类文档。通用运行选项General options这一组变量决定容器进程以何种身份、何种时区、何种日志与 JVM 参数运行是搭建任何类型服务器的地基。变量名说明默认值必填UID运行容器的 Linux 用户 ID1000⬜️GID运行容器的 Linux 组 ID1000⬜️MEMORY同时设定 JVM 堆的初始值与最大值1 GB1G⬜️INIT_MEMORY独立设定 JVM 堆初始值-Xms1G⬜️MAX_MEMORY独立设定 JVM 堆最大值-Xmx1G⬜️TZ容器时区或挂载/etc/localtime、/etc/timezoneUTC⬜️LOG_LEVEL根日志级别trace、debug、info、warn、errorinfo⬜️LOG_CONSOLE_FORMATlog4j2 控制台输出格式即docker logs所见[%d{HH:mm:ss}] [%t/%level]: %msg%n⬜️LOG_FILE_FORMAT写入logs/latest.log的 log4j2 文件日志格式[%d{HH:mm:ss}] [%t/%level]: %msg%n⬜️LOG_TERMINAL_FORMAT交互式终端docker attach使用的 log4j2 格式[%d{HH:mm:ss} %level]: %msg%n⬜️ROLLING_LOG_FILE_PATTERN滚动归档日志文件的命名模式logs/%d{yyyy-MM-dd}-%i.log.gz⬜️ROLLING_LOG_MAX_FILES保留的归档日志文件最大数量1000⬜️ENABLE_ROLLING_LOGS遗留选项滚动日志现已通过模板化 log4j2 配置默认启用此变量仅为向后兼容保留仅用于错误报告false⬜️ENABLE_JMX设为true启用远程 JMX用于 VisualVM / JMC 性能分析false⬜️JMX_HOST启用 JMX 后设置为运行 Docker 容器的主机 IP/域名并转发 TCP 7091 端口空⬜️USE_AIKAR_FLAGS启用 Aikar 研究出的 G1GC 调优 JVM 参数false⬜️USE_MEOWICE_FLAGS启用基于 Aikar 但适配 Java 17 的 MeowIce 参数集false⬜️USE_MEOWICE_GRAALVM_FLAGS设为TRUE时启用 MeowIce 面向 GraalVM 的参数true⬜️JVM_OPTS传给服务器进程的通用 JVM 参数空格分隔的原始参数空⬜️JVM_XX_OPTS用于声明-XX开头的 JVM 参数需在-X参数之前空⬜️JVM_DD_OPTS以逗号分隔的namevalue或name:value列表展开为多个-D系统属性空⬜️EXTRA_ARGS追加在 jar 文件名之后的额外参数原样传给启动命令尾部空⬜️LOG_TIMESTAMP设为true时在每条日志前附带时间戳false⬜️UID / GID以指定用户身份运行默认以 UID/GID 1000 运行便于与宿主机上常见的普通用户目录权限对齐避免数据卷写权限冲突。若你的宿主机目录属于其他用户应同步调整这两个变量。时区 TZ容器默认使用UTC。除设置TZ变量外也可以挂载宿主机的时区文件volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro日志体系与滚动归档ENABLE_ROLLING_LOGS已被标记为遗留选项从 start-finalExec 脚本 可以看到镜像启动时会通过模板化 heredoc 生成/data/log4j2.xml其中LOG_CONSOLE_FORMAT、LOG_TERMINAL_FORMAT、LOG_FILE_FORMAT、LOG_LEVEL、ROLLING_LOG_FILE_PATTERN与ROLLING_LOG_MAX_FILES会直接注入 log4j2 配置的PatternLayout、Root level与DefaultRolloverStrategy。滚动日志由TimeBasedTriggeringPolicy与OnStartupTriggeringPolicy驱动文件按%d{yyyy-MM-dd}-%i命名并压缩为.gz。实际使用时通常只需要关注两个细节LOG_LEVELdebug可输出更详细的启动日志便于排查版本下载与 mod 加载问题日志文件写入logs/latest.log与LEVEL指定的世界目录并列位于/data之下。JVM 参数三兄弟JVM_OPTS / JVM_XX_OPTS / JVM_DD_OPTSJVM 要求-XX参数位于-X参数之前因此镜像把两者拆分为独立变量docker run ... -e JVM_OPTS-XsomeJVMOption -DpropNamevalue \ -e JVM_XX_OPTS-XX:UseG1GC ...JVM_DD_OPTS则是传-D系统属性的快捷方式。从 start-finalExec 脚本 的实现看它会把列表中的:一律替换为后逐项展开为-Dxxxenvironment: JVM_DD_OPTS: disable.watchdog:true,fml.queryResultconfirm等价于-Ddisable.watchdogtrue -Dfml.queryResultconfirm。冒号语法是为 Plesk 等不允许值内出现的管理平台提供的替代写法。EXTRA_ARGS追加在-jar server.jar之后。典型用途包括nogui无图形界面模式以及旧版本 Spigot 需要的--noconsole实际上在 start-finalExec 脚本 中当GUIfalse或旧版本CONSOLEfalse时镜像会自动拼接这些参数。内存与 GC 调优MEMORY / INIT_MEMORY / MAX_MEMORY默认初始堆与最大堆均为 1G。三个变量支持size[g|G|m|M|k|K]格式也支持百分比形式如50%后者分别映射为-XX:InitialRAMPercentage与-XX:MaxRAMPercentagedocker run -d -e MEMORY2G ... docker run -d -e INIT_MEMORY1G -e MAX_MEMORY4G ...将MEMORY置空-e MEMORY可让 JVM 依据容器内存限额自行计算默认取容器限额的 25%。需要提醒的是这些变量只控制Java 堆容器整体内存的 requests/limits 还应额外预留约 25% 的非堆开销。GC 参数集开关USE_AIKAR_FLAGStrue应用 Aikar 的 G1GC 调优参数。从 start-finalExec 脚本 可见当MAX_MEMORY≥ 12G 时自动切换为“大内存”分支G1NewSizePercent40等否则使用默认分支USE_MEOWICE_FLAGStrue基于 Aikar 但面向 Java 17 的更新参数集。脚本会先用mc-image-helper java-release检测 Java 主版本若 ≤ 16 则自动回退到 Aikar 参数USE_MEOWICE_GRAALVM_FLAGS面向 GraalVM 的优化参数且针对 Java 24java_major_version 23有单独分支启用-XX:UseCompactObjectHeaders等USE_FLARE_FLAGS为 Flare 性能分析套件补充-XX:UnlockDiagnosticVMOptions -XX:DebugNonSafepointsUSE_SIMD_FLAGS追加--add-modulesjdk.incubator.vector以支持 SIMD 优化。这些参数集的完整展开逻辑包括G1HeapRegionSize、InitiatingHeapOccupancyPercent、MaxGCPauseMillis200等都固化在 start-finalExec 脚本 中USE_AIKAR_FLAGS还会附带-Dusing.aikars.flagshttps://mcflags.emc.gs便于识别。远程 JMX 分析docker run -d -e ENABLE_JMXtrue -e JMX_HOST$HOSTNAME -p 7091:7091 ...对应的 compose 写法environment: ENABLE_JMX: true JMX_HOST: ${HOSTNAME} JMX_PORT: 7092 ports: - 7092:7092从源码看JMX_PORT默认 7091JMX 监听绑定由JMX_BINDING默认0.0.0.0控制java.rmi.server.hostname使用JMX_HOST默认localhost。若未设置JMX_HOST容器外工具将无法正确回连。服务器核心选项Server这一组变量直接决定服务器的类型、版本、模式与生命周期行为。变量名说明默认值必填TYPE服务器类型VANILLA、PAPER、FORGE、FABRIC 等VANILLA⬜️EULA必须设为true才能启动空✅VERSIONMinecraft 版本号支持LATEST、SNAPSHOT及具体版本LATEST⬜️MOTD服务器列表中的欢迎消息空⬜️DIFFICULTY难度peaceful/easy/normal/hardeasy⬜️ICON服务器图标的 URL 或文件路径自动下载、缩放并转换格式空⬜️OVERRIDE_ICON设为TRUE时覆盖已存在的图标FALSE⬜️MODE游戏模式数值0-3或creative/survival/adventure/spectator1.8空⬜️LEVEL世界存档名对应level-name属性可用于切换或并行多世界world⬜️SERVER_PORT对应server-port仅在使用 host 网络时修改慎用空⬜️STOP_SERVER_ANNOUNCE_DELAY优雅停机时先向服务器发送公告再等待的秒数空⬜️STOP_SERVER_DELAY_COMMAND在延迟期开始时执行的自定义命令替代默认公告空⬜️PROXY通过 URL 配置 HTTP/HTTPS 代理false⬜️CONSOLE旧版1.14 前Spigot 在分离 stdin 时是否需要--noconsoleTRUE⬜️GUI防止旧版本服务器误认为 GUI 已启用TRUE⬜️STOP_DURATION收到停止信号后通过 RCON/控制台发送stop并等待进程优雅退出的时长秒60⬜️SETUP_ONLY为宿主机附加数据目录时仅完成初始化后即退出不启动服务器进程false⬜️USE_FLARE_FLAGS启用 Flare 性能分析套件所需的 JVM 参数空⬜️USE_SIMD_FLAGS启用优化 SIMD 运算支持false⬜️TYPE 与 VERSION自动化安装的入口TYPE是镜像自动部署的“总开关”它会驱动 start-deployVanilla、start-deployPaper、start-deployForge 等一系列部署脚本自动下载对应服务端、加载器与 Modpack。VERSION默认LATEST也可指定如1.20.1或SNAPSHOT。在server.properties的占位符体系中用户声明的最初版本值会保存在DECLARED_VERSION变量中便于区分“声明值”与“解析后的实际版本”。EULA不可跳过的法律开关EULAtrue是唯一标记为必填的服务器变量。若不设置镜像会在启动时输出 Mojang EULA 提示并退出。MODE 与 DIFFICULTY 的解析细节从 start-setupServerProperties 脚本 可以看到镜像对这两个变量做了兼容旧版的数值转换1.13 之前版本使用数字0/1/2/31.13 及以后使用单词形式survival/creative/adventure/spectator且支持前缀缩写匹配如su*、c*。非法值会直接报错退出docker run -d -e MODEcreative -e DIFFICULTYhard ...MOTD 与多行消息MOTD未设置时镜像会根据服务器类型自动生成默认文案如A Paper Minecraft Server powered by Docker见 start-setupServerProperties 脚本 中的大小写转换逻辑。使用§颜色代码与\n换行符时注意引用方式docker run -d -e MOTDA §l§cMinecraft§r §nserver ...compose 中推荐使用 YAML 块标量支持多行environment: MOTD: | line one line two更完整的 MOTD 与占位符用法见 server-properties 文档。ICON自动下载、缩放与格式转换ICON支持 URL 或容器内文件路径。在 start-finalExec 脚本 中镜像用 ImageMagick 的identify判断图片类型恰好是PNG 64x64的直接使用GIF 截取首帧并-resize 64x64!其余格式统一转成 64x64 PNG 写入/data/server-icon.png。已存在图标默认不覆盖需OVERRIDE_ICONTRUE。优雅停机三件套STOP_DURATION控制mc-server-runner等待服务器优雅退出的总时长源码中--stop-duration ${STOP_DURATION:-60}sSTOP_SERVER_ANNOUNCE_DELAY先让服务器广播提示、再真正停止的宽限秒数--stop-server-announce-delaySTOP_SERVER_DELAY_COMMAND用自定义命令替换宽限期内的默认公告--stop-server-delay-command。这三者共同保证玩家在停机前有足够时间收尾且不会因强杀进程导致存档损坏。SETUP_ONLY只初始化、不运行使用宿主机附加数据目录时可先让镜像完成服务端下载、配置生成与模组安装后退出docker run -it --rm -e SETUP_ONLYtrue -v /path/to/data:/data -e EULATRUE itzg/minecraft-server对应地start-finalExec 脚本 在SETUP_ONLYtrue时只打印最终 java 命令并退出不启动服务器进程。Server properties从环境变量到 server.properties 的映射镜像将几乎所有已知的server.properties条目映射为同名环境变量统一通过 property-definitions.json 中的env字段驱动由mc-image-helper set-properties在启动时写盘见 start-setupServerProperties 脚本 的--definitions /image/property-definitions.json。完整映射表见 server-properties 文档本文只强调几条核心约定清空属性将变量设为空字符串如-e RESOURCE_PACK即可清除未设置的变量会被忽略保留文件原有值人工管理设OVERRIDE_SERVER_PROPERTIESfalse可避免镜像覆盖你手写的文件设SKIP_SERVER_PROPERTIEStrue则完全跳过server.properties的生成调试输出设DUMP_SERVER_PROPERTIEStrue服务器启动前会打印最终生效的server.properties全文占位符属性值支持 DOS 风格占位符%VAR%/%env:VAR%与%date:FMT%JavaDateTimeFormatter格式例如environment: MOTD: Running %MODPACK_NAME% version %env:MODPACK_VERSION% LEVEL: world-%date:yyyy-MM-dd%Modrinth 与 Auto-CurseForge 模组包还会额外暴露MODPACK_NAME与MODPACK_VERSION两个占位符变量。注意人工管理server.properties时不支持占位符。其他常用映射示例完整列表见 files/property-definitions.json环境变量对应属性ENABLE_QUERYenable-querySEEDlevel-seedLEVEL_TYPE/GENERATOR_SETTINGSlevel-type/generator-settingsMAX_PLAYERSmax-playersVIEW_DISTANCE/SIMULATION_DISTANCEview-distance/simulation-distanceONLINE_MODEonline-modePVPpvpHARDCOREhardcoreCUSTOM_SERVER_PROPERTIES以换行分隔的namevalue自定义条目自定义资源包Custom resource pack变量名说明默认值必填RESOURCE_PACK自定义资源包下载链接空⬜️RESOURCE_PACK_SHA1资源包的 SHA1 校验和空⬜️RESOURCE_PACK_ENFORCE强制客户端启用资源包FALSE⬜️docker run -d -e RESOURCE_PACKhttp://link.com/to/pack.zip \ -e RESOURCE_PACK_SHA1d5db29cd03a2ed055086cef9c31c252b4587d6d0 \ -e RESOURCE_PACK_ENFORCETRUE ...这三个变量分别映射到resource-pack、resource-pack-sha1与require-resource-pack属性见 property-definitions.json。提供 SHA1 可避免客户端在每次进入服务器时重复下载强烈建议为资源包计算并填写校验和。白名单Whitelist变量名说明默认值必填ENABLE_WHITELIST启用白名单功能false⬜️WHITELIST以逗号或换行分隔的用户名和/或 UUID 列表空⬜️WHITELIST_FILE白名单 JSON 文件的 URL 或容器内路径空⬜️OVERRIDE_WHITELIST每次启动时强制重新生成白名单false⬜️从 start-setupServerProperties 脚本 可以看到只要设置了WHITELIST/WHITELIST_FILE/ENABLE_WHITELIST之一镜像就会自动把WHITELIST_PROPtrue与ENFORCE_WHITELISTtrue注入server.properties即同时启用white-list与enforce-whitelist。environment: WHITELIST: | user1 user2 user3已存在的白名单文件如何处理由EXISTING_WHITELIST_FILE控制可取值SKIP、SYNCHRONIZE、MERGE、SYNC_FILE_MERGE_LIST默认OVERRIDE_WHITELIST是其中的遗留开关等价于在SKIP与SYNCHRONIZE之间切换。用户名解析默认走 PlayerDB也可用USER_API_PROVIDERmojang切换至 Mojang API详见 server-properties 文档。RCON 远程控制变量名说明默认值必填ENABLE_RCON启用/禁用 RCON禁用会削弱交互式与彩色控制台等能力true⬜️RCON_PASSWORD必须修改的 RCON 密码随机生成✅RCON_PASSWORD_FILE从文件读取 RCON 密码同时设置时优先于RCON_PASSWORD空⬜️RCON_PORTRCON 监听端口25575⬜️BROADCAST_RCON_TO_OPS设置broadcast-rcon-to-ops服务器属性false⬜️RCON_CMDS_STARTUP服务器启动时执行的 RCON 命令空⬜️RCON_CMDS_ON_CONNECT有客户端连接时执行的 RCON 命令空⬜️RCON_CMDS_FIRST_CONNECT首个客户端连接时执行的 RCON 命令空⬜️RCON_CMDS_ON_DISCONNECT有客户端断开时执行的 RCON 命令空⬜️RCON_CMDS_LAST_DISCONNECT最后一个客户端断开时执行的 RCON 命令空⬜️RCON 默认开启因为镜像的优雅停机、备份时存档同步、自动执行命令等功能都依赖它。密码默认每次启动随机生成因此生产环境务必显式指定。推荐使用RCON_PASSWORD_FILE可完整支持 Docker Secretsservices: mc: image: itzg/minecraft-server:latest tty: true stdin_open: true ports: - 25565:25565 environment: EULA: TRUE RCON_PASSWORD_FILE: /run/secrets/rcon_pass volumes: - ./data:/data secrets: - rcon_pass secrets: rcon_pass: file: ./rcon_password警告除非你清楚所有风险并已设置高强度密码否则不要将 RCON 端口25575映射到外部网络。自动执行 RCON 命令在 compose 中声明多条命令时最方便的是使用 YAML 的|-块标量语法完整示例见 auto-rcon-commands 文档environment: RCON_CMDS_STARTUP: |- gamerule doFireTick false pregen start 200 RCON_CMDS_ON_CONNECT: |- team join New a[team] RCON_CMDS_FIRST_CONNECT: |- pregen stop RCON_CMDS_LAST_DISCONNECT: |- kill e[typeminecraft:boat] pregen start 200注意ON_CONNECT系列事件只代表“有连接发生”无法获知具体玩家是谁如需按玩家维度操作需借助团队team等机制例如文档中“新玩家规则”示例连接时将无团队玩家加入New团队、发放道具、再移入Old团队。这些命令由 rcon-cmds-daemon.sh 守护进程监听事件并逐条执行。Auto-Pause 自动暂停变量名说明默认值必填ENABLE_AUTOPAUSE启用自动暂停功能FALSE⬜️AUTOPAUSE_TIMEOUT_EST最后一个客户端断开后到进程被暂停的秒数3600⬜️AUTOPAUSE_TIMEOUT_INIT服务器启动后、期间无客户端连接时到进程被暂停的秒数600⬜️AUTOPAUSE_TIMEOUT_KN端口被“敲门”如主菜单 ping后、仍无客户端连接时到进程被暂停的秒数120⬜️AUTOPAUSE_PERIOD处理暂停状态机的守护进程轮询周期秒恢复是独立并行的10⬜️AUTOPAUSE_KNOCK_INTERFACE传给knockd守护进程的网络接口eth0⬜️DEBUG_AUTOPAUSE输出 AutoPause 的额外调试信息false⬜️Auto-Pause 通过监听客户端连接状态在空闲超时后将 Java 进程挂起而非停止客户端再次连接时自动恢复玩家体验几乎无感。其实现分布在 autopause-daemon.sh 与 autopause-fcns.sh 中并配套 pause.sh、resume.sh、stop.sh 等动作脚本。使用要点详见 autopause 文档必须调大或禁用max-tick-time看门狗暂停会让单个 tick 的耗时等于暂停时长恢复后可能触发看门狗强制重启容器。建议MAX_TICK_TIME-11.8.1 可禁用PaperMC 系还需追加JVM_DD_OPTSdisable.watchdog:true服务器暂停时会在/data下创建.paused文件恢复时删除外部服务可据此探测状态在/data下创建.skip-pause文件可临时跳过自动暂停唤醒基于knockd在网络接口层工作非默认网络环境host 网络、Portainer、NAS需用AUTOPAUSE_KNOCK_INTERFACE指定正确接口容器内ifconfig可查默认eth0rootless 容器需--cap-addCAP_NET_RAW必要时设SKIP_SUDOtrue自 Minecraft 1.21.2 起原版已原生支持空服暂停PAUSE_WHEN_EMPTY_SECONDS映射到pause-when-empty-seconds属性此时不建议再使用本功能启用时若配置 Kubernetes 就绪/存活探针请引用mc-health包装脚本而不是直接调用mc-status。Auto-Stop 自动停止变量名说明默认值必填ENABLE_AUTOSTOP启用自动停止功能FALSE⬜️AUTOSTOP_TIMEOUT_EST最后一个客户端断开后到服务器停止的秒数3600⬜️AUTOSTOP_TIMEOUT_INIT服务器启动后、期间无客户端连接时到服务器停止的秒数1800⬜️AUTOSTOP_PERIOD处理停止状态机的守护进程轮询周期秒10⬜️DEBUG_AUTOSTOP输出 AutoStop 的额外日志false⬜️Auto-Stop 与 Auto-Pause 本质上是互斥的两者会互相抵消因此不能同时启用。Auto-Stop 适合按需启动、用完即停的场景如配合惰性启动网关实现见 autostop-daemon.sh 与 start-autostop使用示例见 examples/autostop/compose.yml。详细说明见 autostop 文档。CurseForge 模组包自动部署变量名说明默认值必填CF_API_KEY你自己的CurseForge (Eternal) API Key空✅CF_API_KEY_FILE容器内包含 API Key 的文件路径空✅CF_PAGE_URL模组包或具体文件的页面 URL空⬜️CF_SLUG模组包的 slug替代 URL空⬜️CF_FILE_ID模组包/文件的 CurseForge 数字 ID空⬜️CF_FILENAME_MATCHER子串或用/包裹的正则用于匹配目标文件名空⬜️CF_EXCLUDE_INCLUDE_FILE全局与按包生效的排除/包含规则的 JSON 文件路径空⬜️CF_EXCLUDE_MODS以逗号或空格分隔的 project slug 或 ID 列表用于排除模组空⬜️CF_FORCE_INCLUDE_MODS以逗号或空格分隔的 project slug 或 ID 列表用于强制包含模组空⬜️CF_FORCE_SYNCHRONIZE强制重新评估排除/包含规则空⬜️CF_SET_LEVEL_FROM从WORLD_FILE或OVERRIDES中选择世界数据来源并据此设置LEVEL空⬜️CF_PARALLEL_DOWNLOADS并行下载模组的数量4⬜️CF_OVERRIDES_SKIP_EXISTING已存在于数据目录中的 overrides 文件是否跳过世界数据总是跳过false⬜️CF_MOD_LOADER_VERSION覆盖模组包声明的模组加载器版本空⬜️设置TYPEAUTO_CURSEFORGE并配合上述CF_*变量镜像即可在启动时自动解析模组包、下载并安装。典型最小配置services: mc: image: itzg/minecraft-server:latest environment: EULA: TRUE TYPE: AUTO_CURSEFORGE CF_API_KEY: ${CF_API_KEY} CF_SLUG: craftoria关键设计API Key 也可通过CF_API_KEY_FILE从文件注入便于配合密钥管理两者都未设置时启动会失败CF_FILENAME_MATCHER用于在模组包存在多个候选文件时精确定位支持/regex/形式默认的排除/包含规则文件为镜像内置的 files/cf-exclude-include.json另有 modrinth-exclude-include.json 供 Modrinth 使用设CF_EXCLUDE_INCLUDE_FILE可禁用默认规则CF_FORCE_SYNCHRONIZE在模组列表变更后强制重新执行排除/包含避免旧文件残留CF_SET_LEVEL_FROM可让模组包自带的存档worlds 文件或 overrides直接成为服务器初始世界部署逻辑由 start-deployAutoCF 与 start-setupModpack 驱动具体实现位于mc-image-helper工具中。CF_*变量属于镜像中覆盖面最广的“按用途动态文档化”的类别本表仅为速查完整、实时的说明请以 Auto-CurseForge 主文档 为准。从速查表到可运行配置变量装载与数据目录环境变量的装载顺序镜像在 start 入口中按阶段执行一系列start-*脚本环境变量在各阶段被消费start-setupRbac权限与用户处理对应UID/GIDstart-setupServerProperties生成/覆盖server.properties消费MOTD、MODE、DIFFICULTY、WHITELIST等start-setupEnvVariables可选的环境变量替换REPLACE_ENV_IN_PLACE、ENV_VARIABLE_PREFIX等见 start-setupEnvVariables 脚本start-setupWorld/start-setupModpack世界与模组包start-finalExec拼装最终 java 命令消费MEMORY、JVM_*、ENABLE_JMX、USE_AIKAR_FLAGS、ICON、STOP_*等。因此如果你观察到某个变量“不生效”可对照该顺序确认它是否属于对应阶段消费的变量。数据目录与持久化所有容器管理的内容都位于容器内/data路径下世界目录$LEVEL、server.properties、logs/、server-icon.png均在其中结构示意见>docker run -d -v /home/user/minecraft-data:/data -p 25565:25565 -e EULATRUE itzg/minecraft-serverservices: mc: image: itzg/minecraft-server:latest ports: - 25565:25565 environment: EULA: TRUE tty: true stdin_open: true restart: unless-stopped volumes: - ./minecraft-data:/data结语docs/variables.md虽然是手工维护的速查表但它完整覆盖了镜像从“进程如何运行”到“服务端如何生成”“RCON 如何联动”“资源如何自动部署”的每一层。结合 start-setupServerProperties、start-finalExec 等启动脚本以及 property-definitions.json 属性映射可以确认这些变量的真实消费路径与默认值。需要更细粒度内容时请继续深入 JVM 选项、server.properties 映射、RCON 自动命令、Auto-Pause/Auto-Stop 与 Auto-CurseForge 等专题文档。【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表