我将docker容器存储在AWS ECR上,使用此容器我创建了Task。当我在Fargate上运行Task时,服务从PROVISIONING>移动。待定(红色)>停止状态。
服务事件或CloudWatch中没有日志。绝对没有办法知道什么是真正的问题。
任何想法移动的方式,AWS文档都没有帮助。
答案 0 :(得分:4)
我也看到了这个错误。
在我的情况下,问题是我的容器定义中有一个无效的image
值。根据{{3}}
image
说明,该图片通常是repository_url和图片代码
答案 1 :(得分:2)
AWS Fargate缺少一个简单但有天赋的信息,这就是导致您解决问题的原因。让我一步一步解释。
第一步是创建一个任务定义,当你这样做时,你可以定义
Entry point ["/bin/ls"]
Command [">","/list.txt","|","echo","/list.txt"]
这与/ bin / ls>等效。 /list.txt | echo /list.txt。
请注意,中间的空格必须用逗号代替。 AWS Farget团队忘记的是在TaskDefinition>中在向导中添加Container部分,这个逗号分隔符echo,helloworld在文本框[![在此处输入图像描述] [1]] [1]中提供。但在任务表单中没有这样的信息。这非常令人困惑。
最后一件事,AWS Fargate的调试信息非常有限。这是我的提示
希望有所帮助
答案 2 :(得分:1)
以我的经验,您需要在ECR中添加权限。在您的存储库中,有一个标签称为“权限”。添加您认为需要的那些权限。
答案 3 :(得分:0)
正如Marc所说,这通常是错误的DockerHub / repo映像名称。
在我的情况下,这是因为映像名称是由Docker Compose文件中的环境变量计算得出的:
services:
web:
image: scipilot/my-web-app:$MY_VERSION_TAG
使用ecs-cli compose service up
时我错过了设置环境变量的机会。因此,Fargate可能正试图从Docker Hub中提取“ scipilot / my-web-app:”,因此出现了无效的格式错误。