目前,我正在使用引用dockerhub中的自定义映像的任务定义来在ECS(Amazon EC2容器服务)上部署我的webapp。有没有办法在不通过dockerhub的情况下执行此操作,即在群集节点上本地构建/部署dockerfile?
目前,我只能考虑通过ssh发送shell命令或使用像ansible这样的工具。
也许我错过了一些完全明显的东西......
答案 0 :(得分:2)
对于一个已回答的问题,这有点晚了,但我自己也想出了这个问题。 EC2 Container Registry(ECR,亚马逊的存储库等价物)对我来说效果很好,当时可能不存在?
我在本地构建容器。使用AWS CLI(其后续版本包括对ECR的支持)标记它们并将它们推送到Amazon的ECR,然后在ECS的任务定义中的该位置引用它们。像魅力一样。
http://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html
答案 1 :(得分:1)
ECS是一种运行容器的服务,而不是构建它们的服务。它没有本机支持,所以你不会错过任何明显的东西。
正如您所建议的,您可以将Dockerfile分发到容器实例并在本地构建,但实际上这将更加困难,因为容器实例必须具有构建映像所需的所有内容,而且您必须分发将图像映射到其他容器实例。
您可以自己运行存储库,并为ECS任务定义中的image参数指定不同的存储库URL。您仍然负责构建映像,现在也增加了运行存储库的负担。
很抱歉成为坏消息的承担者,但目前还没有更简单的工作流程。