ProcessMaker Docker镜像启动卡在等待MySQL阶段问题咨询
你遇到的启动循环卡住的核心原因是ProcessMaker容器无法连接到指定的MySQL服务,mysqladmin输出的密码警告只是安全提示,并非阻塞启动的根因。你删除了--network pm-network参数后,容器无法通过主机名mysql找到对应的MySQL服务,所以会一直重试ping操作。
解决步骤
1. 创建专属Docker网络
首先创建ProcessMaker官方要求的专用网络,保证ProcessMaker容器和MySQL容器网络互通:
docker network create pm-network
2. 启动符合要求的MySQL容器
你需要先启动一个适配ProcessMaker 4的MySQL实例(支持5.7/8.0版本),容器命名为mysql和启动脚本中-h mysql的配置对应:
docker run -d --name mysql \ --network pm-network \ -e MYSQL_DATABASE=processmaker \ -e MYSQL_USER=pm \ -e MYSQL_PASSWORD=pass \ -e MYSQL_ROOT_PASSWORD=自定义root密码 \ mysql:8.0
3. 验证MySQL可用性
等待MySQL完全启动后,执行以下命令验证数据库可以正常访问:
docker exec mysql mysql -u pm -ppass -e "SELECT 1;"
正常执行会输出查询结果,代表MySQL服务就绪。
4. 启动ProcessMaker容器
恢复官方启动命令中的--network pm-network参数,调整镜像版本为你使用的processmaker/pm4-core:4.1.20,其他路径映射根据你本地实际路径修改即可:
docker run -d --name processmaker --network pm-network \ -v /本地实际路径/env文件:/opt/processmaker/.env \ -v /本地实际路径/storage目录:/opt/processmaker/storage \ -v /本地实际路径/docker/tls证书目录:/certs \ -v /本地实际路径/ssl证书目录:/etc/ssl/certs/processmaker-ssl \ -e DOCKER_HOST=tcp://remotedocker:2376 \ -e DOCKER_TLS_VERIFY=1 \ -e DOCKER_CERT_PATH=/certs \ -p 443:443 \ processmaker/pm4-core:4.1.20
如果不需要远程Docker调用,也可以删除DOCKER_HOST、DOCKER_TLS_VERIFY、DOCKER_CERT_PATH三个环境变量配置。
注意事项
- 如果你没有使用默认的
mysql作为MySQL容器名,需要修改你挂载的.env文件中DB_HOST参数为你的MySQL容器名 - 确保
.env文件中的数据库名称、用户名、密码和你启动MySQL时配置的参数完全一致 - 启动完成后可以通过
https://localhost访问服务,如果443端口冲突可以修改端口映射为-p 8443:443,访问https://localhost:8443即可
内容的提问来源于stack exchange,提问作者Siavoshkc
相关产品推荐
相关产品推荐

