资讯动态

改一行配置不用重打镜像:docker-minecraft-server 环境变量动态配置从入门到排坑

发布时间:2026/9/16 18:58:36 来源:尧图企业网站定制
改一行配置不用重打镜像docker-minecraft-server 环境变量动态配置从入门到排坑【免费下载链接】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部署时才确定的值别写死在配置文件里插件的配置文件躺在/data里但数据库地址、密码这类信息往往部署时才知道也不该进 Git 仓库或镜像。docker-minecraft-server 的环境变量动态配置机制就是干这个的容器启动时扫描/data下的配置文件把${CFG_XXX}占位符替换成 compose 里注入的值。机制速览启动脚本怎么扫 /data 做变量替换启动脚本在拉起服务器前跑一轮扫描由REPLACE_ENV_IN_PLACE控制默认开启遍历REPLACE_ENV_PATHS默认/data下扩展名命中的文件遇到${变量名}就查容器环境变量——变量名带CFG_前缀REPLACE_ENV_VARIABLE_PREFIX可改、置空则不限前缀才参与替换。一次扫描、原地写回改完即落盘。实操从单值替换到批量排除单值替换占位符加前缀声明在配置文件里声明占位符database: host: ${CFG_DB_HOST} name: ${CFG_DB_NAME} password: ${CFG_DB_PASSWORD}compose 里给出对应值environment: REPLACE_ENV_VARIABLES: TRUE ENV_VARIABLE_PREFIX: CFG_ CFG_DB_HOST: db.internal:3306改完重启容器database.yml里的占位符会变成真实地址没带前缀的${DB_HOST}不会被动这就是前缀白名单的意义。密钥文件挂载_FILE 后缀写法密码不想明文进 compose就挂 secret 文件再用同名加_FILE后缀的变量指向它替换时取文件内容作为值secrets: db_password: file: ./db_password environment: CFG_DB_PASSWORD_FILE: /run/secrets/db_password配置文件里照常写${CFG_DB_PASSWORD}——_FILE变量只是取值来源不是占位符名字。批量替换与排除同步阶段和 EXCLUDESREPLACE_ENV_DURING_SYNC默认true从/plugins、/mods、/config挂载同步进/data的文件复制前也会走一遍替换。数据文件里恰好含${}时比如 Essentials 的用户数据目录排除掉environment: REPLACE_ENV_VARIABLES_EXCLUDES: userdata.yml REPLACE_ENV_VARIABLES_EXCLUDE_PATHS: /data/plugins/Essentials/userdataEXCLUDES只填文件名不带路径EXCLUDE_PATHS是路径级递归排除整个目录连同子目录都跳过。边界条件哪些文件会被扫、哪些能排除扫描范围由REPLACE_ENV_SUFFIXES决定默认yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml列表外的扩展名一律不处理。替换是纯字符串操作不校验文件语法格式写错不会帮你修但错误值照样会被写进去所以占位符最好落在纯值字段上。需要按路径改某个字段而不仅是换字符串时用PATCH_DEFINITIONS指向 JSON 补丁定义文件支持$set/$put操作可作用于 JSON/YAML/TOML 文件补丁里的file和value字段同样能写${CFG_...}占位符语法细节见 docs/configuration/interpolating.md。把参数从docker run搬进 compose 后这些值就跟着项目走改一个地址、换一把密钥只需改 compose 再重启容器镜像和配置文件都不用重打。从 docker run 迁移到 compose 项目变量全貌与补丁语法docs/configuration/interpolating.md通过卷注入共享配置的实际例子examples/apply-extra-configs/compose.yml。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价