我正在使用.NET Core WEBAPI和Dockerfile
FROM microsoft / dotnet:sdk AS build-envWORKDIR / app
#复制csproj并恢复为不同的图层COPY * .csproj ./运行dotnet还原
#复制……
我最终弄明白了。下面的错误消息表明此群集中没有EC2,因此无法启动容器。我们没有使用Fargate。
service cld-dummy-test无法放置任务,因为没有容器实例满足其所有要求。原因:您的群集中未找到任何容器实例。
要将EC2注册到群集,您需要遵循此AWS文章。 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html
请注意,您启动的EC2需要具有以下userdata才能进行注册。
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
完成上述操作后,您不应该看到有关“无容器”的错误。但是,如果您像我一样,请在模板中使用splunk日志记录部分。您将遇到一个不同的问题,即没有容器可以用于任务,因为它缺少一个属性。这是一个非常模糊的消息,属性可以是任务定义页面底部列出的任何内容。
在我的情况下,它是splunk日志记录。需要将splunk驱动程序添加到EC2实例。因为我后来发现我们不再需要splunk所以我删除了splunk部分。但是如果你想这样做,你可能需要在你的用户数据中添加以下行。
ECS_AVAILABLE_LOGGING_DRIVERS=["splunk","awslogs"]
我希望这可以帮助别人。
AWS ECS有两个启动类型配置:
在这两种情况下,您都无法访问底层资源。
所以可能导致iusse在启动类型配置中你无法启动任务,否则从ecs仪表板你可以选择启动类型并选择任务定义。