You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Wildfly 26持续自动重启问题求助

WildFly 26.1.2挂载Windows主机EAR后自动重复部署问题解决

问题背景

将Windows主机上的EAR包通过-v挂载到WildFly 26.1.2容器的部署目录后,服务器启动就绪(输出WildFly Full 26.1.2.Final started in 106408ms),部署扫描器会立即触发EAR包的重部署,导致服务器重启。但将EAR包复制到容器内部目录则运行正常,问题与Windows到容器的卷挂载机制相关。

相关日志

DEBUG [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) Deployment scan of [/opt/jboss/wildfly/deploy/.] found update action [{
"operation" => "redeploy",
"address" => [("deployment" => "something.ear")],
"owner" => [
("subsystem" => "deployment-scanner"),
("scanner" => "dev.profile.scanner")
]
}]

当前部署扫描器配置

/subsystem=deployment-scanner/scanner=dev.profile.scanner:add(path=./,relative-to="deploy.dir",scan-interval=5000,auto-deploy-zipped="true",auto-deploy-exploded="true", deployment-timeout="18000")

原因分析

Windows文件系统与Linux容器内的文件系统在元数据(修改时间、权限位等)处理上存在差异,部署扫描器默认通过文件时间戳判断是否需要更新,挂载场景下容易出现误触发:

  • Windows时间戳精度与Linux不同,挂载后容器读取到的时间戳发生变化
  • Docker挂载Windows目录时,会频繁修改文件权限等元数据,被扫描器判定为文件更新
  • 挂载过程中文件状态处于变动中,首次扫描后又检测到变化,触发重部署

解决方案

1. 切换扫描器的检测模式为哈希

将扫描器的检测逻辑从默认的时间戳改为文件哈希,避免元数据变动导致的误触发:

# 修改检测模式为hash
/subsystem=deployment-scanner/scanner=dev.profile.scanner:write-attribute(name=detection-mode,value=hash)

注:哈希检测会增加少量CPU开销,适合开发环境使用。

2. 优化Docker挂载参数

使用--mount替代-v,并设置consistency=cached减少文件系统实时同步频率(适用于Docker Desktop):

docker run -d \
  --mount type=bind,source=C:/your/local/ear/path,target=/opt/jboss/wildfly/deploy,consistency=cached \
  your-custom-wildfly-image

同时建议挂载包含EAR的目录而非单个文件,降低单个文件元数据变动的影响。

3. 调整扫描间隔与初始延迟

增大扫描间隔,并设置初始延迟,给挂载过程足够时间完成文件同步:

# 增大扫描间隔到10秒
/subsystem=deployment-scanner/scanner=dev.profile.scanner:write-attribute(name=scan-interval,value=10000)
# 设置初始延迟15秒,服务器就绪后再开始扫描
/subsystem=deployment-scanner/scanner=dev.profile.scanner:write-attribute(name=initial-delay,value=15000)

4. 使用WildFly开发者模式

开发环境下直接启用WildFly的dev模式,内置更智能的热部署机制,适配外部挂载场景:

./standalone.sh -c standalone-full.xml --dev

内容的提问来源于stack exchange,提问作者fbec76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:05:23