7

我将 docker 容器存储在 AWS ECR 上,使用我创建的这个容器 Task 。当我通过 Fargate 运行 Task 时,服务从 PROVISIONING > PENDING (red color) > STOPPED states 移动。

Service Event 或 CloudWatch 中都没有日志。绝对没有办法知道真正的问题是什么。

任何想法移动的方式,AWS 文档都没有帮助。

4

4 回答 4

4

我也看到了这个错误。就我而言,问题是image我的容器定义中有一个无效值。根据https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.htmlimage中的说明,该图像通常是一个 repository_url 和图像标签

于 2018-02-24T16:01:29.307 回答
2

AWS Fargate 缺少一个简单但很简单的信息,这就是导致您遇到问题的原因。让我逐步解释一下。

第一步是创建一个任务定义,当你这样做时,你可以定义

 Entry point ["/bin/ls"]
Command     [">","/list.txt","|","echo","/list.txt"]

这相当于 /bin/ls > /list.txt | 回声 /list.txt 。

请注意,中间的空格必须用逗号代替。AWS Farget 团队忘记的是,在向导的 TaskDefinition > Add Container 部分中,此逗号分隔符 echo,helloworld 在文本框 [![enter image description here][1]][1] 中提供。但是在任务表单中没有这样的信息。这非常令人困惑。

最后一件事,AWS Fargate 的调试信息非常有限。这是我的提示

  • 您只能在 Cluster>Task>{TaskName}>{container} 下得到可能的错误。根据错误原因。
  • 如果错误很小,我总是得到错误代码0,代码0之间没有空格。Cloud 手表上也没有任何内容。
  • 如果错误文本很大(可能约为 20 char 或 > ),您将在 #1 和 CloudWatch 日志中看到它。

希望能帮助到你

于 2017-12-18T18:23:44.753 回答
1

正如 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:”,因此出现了无效的格式错误。

于 2018-12-14T03:04:04.703 回答
1

根据我的经验,您需要在 ECR 中添加权限。在您的存储库中有一个称为权限的选项卡。添加您认为需要的权限。

于 2018-07-13T07:13:12.683 回答