为什么我的 Docker 容器卡在 "Created" 状态?

Why is my Docker container stuck in a state of "Created"?

我正在尝试使用 Bitbucket Pipelines 和 AWS CodeDeploy 部署到 EC2。我已设置好所有内容,以便 CodeDeploy 代理的上传步骤正常工作,只是当我尝试 运行 部署步骤中的语句时,我的 script.sh /usr/local/bin/docker-compose -f /home/ec2-user/my-app/docker-compose.yml run --rm composer install 失败。

其他一切正常,如果我删除此步骤,它会成功部署。如果我尝试手动执行此命令,它也可以工作,并且此容器运行然后退出。我检查了权限,更改了我的 IAM 设置并在来这里之前完成了我能想到的一切。

因此,经过长时间的搜索,运行进行了无数的管道部署并连续数周敲打我的构建时间,我终于找到了问题的根源,希望这可以帮助任何有相同问题的人问题。

权限问题导致无法运行执行docker-compose run等命令。借助 AWS Code Deploy,我们 运行 生命周期挂钩脚本 appspec.yml,通常作为 root。但是,AWSCodeDeployRole 需要完全权限 - 在我的例子中,这是针对 EC2 的,因此缺少需要附加到 AWSCodeDeployRole 的 AmazonEC2FullAccess 策略。还将 ec2.amazonaws.com 添加到 JSON 信任策略,这对我有用...2 个月后!