我正在尝试设置一个新的springboot + docker(微服务)项目。部署针对aws。每个服务都有一个与之关联的Dockerfile。我正在考虑使用亚马逊容器服务进行部署,但据我所知它只从docker hub中提取图像。我不希望ECS从docker-hub中提取,而是从docker文件构建映像,然后接管部署这些容器。是否可以这样做?如果是的话。
答案 0 :(得分:2)
单独使用Amazon EC2 Container Service (ECS)这是不可能的 - 虽然ECS同时支持private registries(另请参阅introductory blog post),它还没有提供图像构建服务(像往常一样) ,AWS预计会随着时间的推移添加这些值得注意的附加功能,请参阅例如Feature Request: ECS container dream service了解更多信息。
但是,AWS Elastic Beanstalk内置Single Container Docker Configurations初始支持已经可以实现:
Docker使用
Dockerfile
创建包含源包的Docker镜像。 [...] Dockerfile是一个纯文本文件,其中包含Elastic Beanstalk用于在Elastic Beanstalk环境中的每个Amazon EC2实例上构建自定义Docker镜像的指令。如果尚未在存储库中托管现有映像,请创建Dockerfile。 [强调我的]
具有讽刺意味的是,Elastic Beanstalk现在已经基于ECS添加了Multicontainer Docker Environments,但是这个非常需要的多功能Docker部署选项不能提供依次构建图像的能力:
Elastic Beanstalk上的多容器Docker平台不支持在部署期间使用
Dockerfile
构建自定义映像。在创建Elastic Beanstalk环境之前,构建映像并将其部署到联机存储库。 [强调我的]
如上所述,由于AWS众所周知的敏捷性(参见例如most recent ECS updates),我希望在不久的将来将其添加到ECS中,但他们通常不会提交路线图详细信息,所以很难估计我们需要等待多长时间。
答案 1 :(得分:0)
与此同时,亚马逊推出了EC2 Container Registry https://aws.amazon.com/ecr/ 如果您不喜欢docker hub,它是一个私人docker存储库。与ECS服务很好地集成。 但是它不会构建您的docker镜像,因此它无法解决整个问题。
我使用竹子服务器来构建图像(源代码位于bitbucket中的git存储库中)。 Bamboo将图像推送到Amazons容器注册表。
我希望Bitbucket Pipelines能够通过更少的构建服务器配置使流程更加流畅。从我看过的视频中,您所有的构建配置都位于您的存储库中。它仍处于封闭测试阶段,所以我想我们将不得不再等一会儿来看看它最终会是什么。