我正在运行this教程,以使用基于自定义 .net 的自定义Docker镜像创建部署管道。
但是,当我开始部署时,它停留在安装阶段,因此我必须手动停止它:
此后,我得到了几个具有不同任务定义的正在运行的任务(请注意:1和:4,因为到目前为止,我已尝试运行4次部署):
他们还始终更改状态运行->提供->待处理。并且停止的任务列表会增加:
问: 那么,如何使用CodeDeploy找出问题所在?为什么它永远运行?更新: 它已连接到健康检查。
更新: 我得到这个:
(service dataapi-dev-service, taskSet ecs-svc/9223370487815385540) (port 80) is unhealthy in target-group dataapi-dev-tg1 due to (reason Health checks failed with these codes: [404]).
不太了解,为什么新创建的容器会失败,因为原来的容器通过了健康检查。
答案 0 :(得分:1)
当ECS任务正在运行时,ELB(弹性负载平衡器)将在您在目标组中进行配置时不断进行容器的运行状况检查,以检查容器是否仍在响应。
从您的调试消息中,容器(api)使用404响应了运行状况检查路径。
我建议您在目标组dataapi-dev-tg1
中配置healhcheck路径。
答案 1 :(得分:1)
如果您的负载均衡器面向 Internet,请确保您的 Internet 网关通过路由表 (Routes) 连接到您的子网。
答案 2 :(得分:1)
答案 3 :(得分:0)
对于仍遇到此问题的用户:就我而言,ECS群集没有出站连接。
该问题的可能解决方案:
我能够弄清楚,因为我在创建ECS集群期间启用了CloudWatch并获得了CannotPullContainerError
。有关解决此问题的更多信息,请查看Cannot Pull Container Image Error。