如何为Docker化的Lucee服务器(Mura CMS)配置空格管理?
针对你使用的blueriver/docker-muracms:7.1-commandbox-lucee5镜像(基于CommandBox运行Lucee),有两种可靠方式来配置空格管理,优先推荐环境变量的便捷方案:
方式1:使用环境变量设置服务器级空格管理
这个镜像基于CommandBox运行,而CommandBox支持通过LUCEE_SERVER_SETTING_前缀的环境变量,直接覆盖Lucee的服务器级配置项。对应空格管理的关键配置如下:
全局开启/关闭空格修剪:
设置环境变量LUCEE_SERVER_SETTING_TRIMWHITESPACE=true(开启)或false(关闭)。指定空格修剪模式:
Lucee提供三种修剪模式,通过LUCEE_SERVER_SETTING_TRIMWHITESPACETYPE设置,可选值:none:不处理任何空格(默认值)afterTags:仅移除CFML标签后的多余空格full:完全移除所有多余空格(包括标签前后、换行等)
示例Docker Compose配置
如果用Docker Compose管理容器,可在配置中添加环境变量:
services: muracms: image: blueriver/docker-muracms:7.1-commandbox-lucee5 environment: - LUCEE_SERVER_SETTING_TRIMWHITESPACE=true - LUCEE_SERVER_SETTING_TRIMWHITESPACETYPE=full # 其他端口、挂载等配置...
示例Docker Run命令
直接用docker run启动容器的话:
docker run -d \ -e LUCEE_SERVER_SETTING_TRIMWHITESPACE=true \ -e LUCEE_SERVER_SETTING_TRIMWHITESPACETYPE=full \ blueriver/docker-muracms:7.1-commandbox-lucee5
方式2:挂载自定义CommandBox配置文件
如果需要更复杂的Lucee配置,可创建server.json文件定义空格管理规则,然后挂载到容器的工作目录(默认是/app):
示例server.json内容
{ "lucee": { "server": { "settings": { "trimWhitespace": true, "trimWhitespaceType": "full" } } } }
Docker Compose挂载示例
services: muracms: image: blueriver/docker-muracms:7.1-commandbox-lucee5 volumes: - ./server.json:/app/server.json # 其他配置...
验证配置生效
启动容器后,可访问Lucee管理员界面(默认路径/lucee/admin/server.cfm),进入「输出设置」板块,查看空格管理选项是否已更新为你设置的值。
注意:如果Mura CMS应用的Application.cfc中单独配置了空格管理参数,会覆盖服务器级设置,这种情况下需要调整Application.cfc里的this.trimWhitespace或this.trimWhitespaceType参数。
内容的提问来源于stack exchange,提问作者dominikj111

