在没有 dockerhub 的情况下通过任务定义在 AWS ECS 上部署
deploying on AWS ECS via task definitions without dockerhub
目前我正在使用引用 dockerhub 中的自定义图像的任务定义在 ECS(Amazon EC2 容器服务)上部署我的 Web 应用程序。有没有办法在不通过 dockerhub 的情况下执行此操作,即 build/deploy 集群节点本地的 dockerfile?
目前,我只能想到通过 ssh 发送 shell 命令或者使用像 ansible 这样的工具。
也许我在这里遗漏了一些非常明显的东西...
ECS 是 运行 容器的服务,而不是构建它们。它没有对它的原生支持,因此您不会遗漏一些明显的东西。
正如您所建议的,您可以将 Dockerfile 分发到容器实例并在本地构建,但这实际上会更加困难,因为容器实例必须具有构建映像所需的一切,而且您还必须分发图像到其他容器实例。
您可以自己 运行 一个存储库,并在 ECS 任务定义中为图像参数指定一个不同的存储库-url。您仍然需要负责构建图像,现在还要承担 运行 建立存储库的额外负担。
很抱歉传达坏消息,但目前没有更简单的工作流程。
回答问题有点晚了,但我自己想出来了。 EC2 Container Registry(ECR,相当于 Amazon 的存储库)对我来说运行良好,可能当时不存在?
我在本地构建容器。标记它们并使用 AWS CLI(其更高版本包括对 ECR 的支持)将它们推送到 Amazon 的 ECR,然后在 ECS 中的任务定义中的该位置引用它们。很有魅力。
http://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html
目前我正在使用引用 dockerhub 中的自定义图像的任务定义在 ECS(Amazon EC2 容器服务)上部署我的 Web 应用程序。有没有办法在不通过 dockerhub 的情况下执行此操作,即 build/deploy 集群节点本地的 dockerfile?
目前,我只能想到通过 ssh 发送 shell 命令或者使用像 ansible 这样的工具。
也许我在这里遗漏了一些非常明显的东西...
ECS 是 运行 容器的服务,而不是构建它们。它没有对它的原生支持,因此您不会遗漏一些明显的东西。
正如您所建议的,您可以将 Dockerfile 分发到容器实例并在本地构建,但这实际上会更加困难,因为容器实例必须具有构建映像所需的一切,而且您还必须分发图像到其他容器实例。
您可以自己 运行 一个存储库,并在 ECS 任务定义中为图像参数指定一个不同的存储库-url。您仍然需要负责构建图像,现在还要承担 运行 建立存储库的额外负担。
很抱歉传达坏消息,但目前没有更简单的工作流程。
回答问题有点晚了,但我自己想出来了。 EC2 Container Registry(ECR,相当于 Amazon 的存储库)对我来说运行良好,可能当时不存在?
我在本地构建容器。标记它们并使用 AWS CLI(其更高版本包括对 ECR 的支持)将它们推送到 Amazon 的 ECR,然后在 ECS 中的任务定义中的该位置引用它们。很有魅力。
http://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html