ProcessMaker容器化环境执行脚本失败:镜像拉取权限被拒
解决ProcessMaker Docker化环境中PHP脚本执行的镜像拉取权限错误
一、排查镜像拉取失败的核心问题
- 镜像名称/版本错误:你使用的
processmaker4/executor-processmaker-php-3:v1.0.0不符合ProcessMaker官方镜像的命名规范,官方PHP执行器镜像通常为processmaker/executor-php格式,需核对pm4core-docker版本对应的官方文档,确认正确的镜像标签。 - 私有仓库权限限制:若该镜像属于ProcessMaker私有仓库,需先在宿主机登录Docker:
docker login # 若为专属私有仓库,需指定仓库地址 docker login [你的私有仓库地址] - 手动拉取镜像验证:尝试手动拉取正确的镜像,确认镜像是否存在:
docker pull processmaker/executor-php:latest # 或选择与你的ProcessMaker版本匹配的镜像标签
二、调整ProcessMaker执行器配置
- 进入ProcessMaker流程设置,检查PHP执行器对应的镜像名称是否与你拉取的一致,修正错误的镜像名配置。
- 若使用自定义执行器镜像,需在pm4core-docker的
docker-compose.yml中提前配置镜像拉取规则,或先在宿主机完成镜像拉取后再使用。
三、优化PHP邮件脚本(避免依赖问题)
你当前使用PHPMailer的脚本在ProcessMaker执行器环境中可能存在依赖缺失问题,提供两种解决方案:
- 使用ProcessMaker内置邮件功能(更简便):无需额外安装PHPMailer,直接调用内置服务:
<?php $mail = new \ProcessMaker\Core\Mail(); $mail->setFrom('noreply@demomailtrap.com', 'Mailer'); $mail->addTo('manager@example.com', 'Manager'); $mail->setSubject('New leave request'); $mail->setBody('Hello, you have a new leave request to review', 'text/html'); $mail->send(); echo 'Message has been sent'; ?> - 坚持使用PHPMailer:需确保执行器镜像中已预装PHPMailer依赖,可将依赖打包进自定义镜像,或在脚本中通过Composer自动加载(前提是执行器环境支持Composer)。
四、验证流程
- 手动拉取正确的PHP执行器镜像,确认拉取成功。
- 在ProcessMaker中重新配置执行器,选择已拉取的镜像。
- 测试脚本执行,检查邮件发送状态及是否仍出现镜像错误。
内容的提问来源于stack exchange,提问作者Incognito
相关产品推荐
相关产品推荐

