0

我正在尝试使用 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 设置并完成了我能想到的所有事情。

4

1 回答 1

0

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

这是一个权限问题,无法运行诸如docker-compose run. 使用 AWS Code Deploy,我们通常以 root 身份运行 appspec.yml 中生命周期挂钩的脚本。但是,AWSCodeDeployRole 需要完全权限 - 在我的情况下,这是针对 EC2 的,因此缺少需要附加到 AWSCodeDeployRole 的 AmazonEC2FullAccess 策略。还将 ec2.amazonaws.com 添加到 JSON 信任策略中,这对我有用……2 个月后!

于 2021-09-07T17:00:02.417 回答