docker-compose启动dcm4chee时ldap、db正常但arc服务启动失败
dcm4chee arc服务启动失败原因及解决方案
核心诱因
你提到的本地缺失/var/local/dcm4chee-arc/wildfly挂载目录是最直接的原因:
docker进行宿主机目录挂载时,若宿主机目标路径为空或不存在,会直接覆盖容器内对应路径的原有内容。arc服务的核心启动配置、依赖文件默认存放在容器内的
/opt/wildfly/standalone路径下,你挂载的空本地目录直接覆盖了该路径下的所有运行必需文件,导致arc服务无法完成初始化启动,而ldap、db服务没有该类自定义挂载配置,因此可以正常启动。
排查验证方法
执行以下命令查看arc服务的具体报错日志,可确认异常根因:
sudo docker-compose -p dcm4chee logs arc
修复步骤
- 先删除已创建的空挂载目录,清理之前启动失败的容器:
sudo rm -rf /var/local/dcm4chee-arc/wildfly sudo docker-compose -p dcm4chee down - 若不需要持久化wildfly配置,可直接注释掉docker-compose.yml中
/var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone这行挂载配置,再重新启动服务即可。 - 若需要持久化wildfly配置,先临时移除该挂载配置启动一次arc服务,将容器内的默认配置拷贝到本地目录后再重新配置挂载:
# 移除挂载配置后启动arc服务 sudo docker-compose -p dcm4chee up -d arc # 拷贝容器内配置到本地路径 sudo docker cp dcm4chee-arc:/opt/wildfly/standalone /var/local/dcm4chee-arc/wildfly # 给本地目录授予容器运行用户权限(wildfly默认运行用户uid为1000) sudo chown -R 1000:1000 /var/local/dcm4chee-arc # 恢复挂载配置后重新启动所有服务 sudo docker-compose -p dcm4chee down sudo docker-compose -p dcm4chee up -d - 若修复挂载问题后仍启动失败,需检查ldap、db服务是否完全初始化完成,可单独启动ldap、db等待30秒后再手动启动arc服务,同时确认docker-compose.env中的数据库、存储路径配置无拼写错误。
内容的提问来源于stack exchange,提问作者zaydoosh
相关产品推荐
相关产品推荐

