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

基于WordPress镜像的ECS容器出现Exit Code 2问题排查求助

排查步骤与解决方案

1. 修正工作目录不符问题

ECS任务定义的容器配置中,WorkingDirectory字段会覆盖Dockerfile里的WORKDIR设置。检查你的ECS任务定义:

  • 找到对应容器的配置项,查看是否手动设置了WorkingDirectory为/home/app
  • 如果是,将其修改为/home/automation,或者直接留空,让镜像的WORKDIR配置生效

2. 定位Exit Code 2的根源

Exit Code 2通常表示命令不存在、参数错误或脚本执行失败,结合你的场景,从以下几点排查:

(1)检查脚本的可执行性与路径

  • 确认Dockerfile中是否给脚本添加了可执行权限:
    RUN chmod +x /home/automation/your-script.sh
    
  • 确保启动脚本的命令使用绝对路径,或者基于WORKDIR的相对路径正确。比如如果你的CMD是["your-script.sh"],要保证脚本在/home/automation目录下

(2)验证脚本的前台运行逻辑

WordPress镜像默认通过前台进程(如Apache/PHP-FPM)维持容器运行,如果你替换为自定义脚本,必须确保脚本是前台运行:

  • 如果脚本是启动某个服务,不要让服务后台运行(比如避免用&)
  • 如果脚本是批处理任务,需要添加阻塞逻辑维持容器运行,比如在脚本末尾添加:
    tail -f /dev/null
    
    或者用exec启动前台进程,替换PID 1

(3)检查脚本依赖是否完整

WordPress镜像的基础环境可能缺少你脚本需要的工具,比如curl、jq等。在Dockerfile中安装所需依赖:

RUN apt-get update && apt-get install -y --no-install-recommends curl jq && rm -rf /var/lib/apt/lists/*

(4)查看容器日志获取具体错误

登录ECS控制台,找到失败的任务,查看对应的CloudWatch日志(需提前配置日志组),日志会显示脚本执行时的具体错误,比如:

  • command not found:说明脚本里的某个命令不存在
  • Permission denied:说明脚本无执行权限或目录无读写权限

3. 验证自定义镜像的本地运行情况

先在本地运行自定义镜像,确认是否能正常启动:

docker run -it --rm your-dockerhub-username/your-custom-image:latest

如果本地运行也失败,直接在本地排查错误,修复后再重新推送镜像到DockerHub,避免反复在ECS上测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:15:35