如何在没有 docker 集线器集成的情况下配置 Amazon 容器服务

How to configure Amazon container service without docker hub integration

我正在尝试设置一个新的基于 springboot+docker(microservices) 的项目。部署是针对 aws 的。每个服务都有一个与之关联的 Dockerfile。我正在考虑使用亚马逊容器服务进行部署,但据我所知,它只从 docker 集线器中提取图像。我不希望 ECS 从 docker-hub 中提取,而是从 docker 文件中构建映像,然后接管部署那些 containers.Is 可能的操作?如果是如何。

Amazon EC2 Container Service (ECS) alone - while ECS meanwhile supports private registries (see also the introductory blog post), it doesn't yet offer an image build service (as usual, AWS is expected to add such notable additional features over time, see e.g. the Feature Request: ECS container dream service 尚无法实现此目的。

不过,AWS Elastic Beanstalk's built in initial support for Single Container Docker Configurations已经可以实现了:

Docker uses a Dockerfile to create a Docker image that contains your source bundle. [...] Dockerfile is a plain text file that contains instructions that Elastic Beanstalk uses to build a customized Docker image on each Amazon EC2 instance in your Elastic Beanstalk environment. Create a Dockerfile when you do not already have an existing image hosted in a repository. [emphasis mine]

具有讽刺意味的是,Elastic Beanstalk 现在添加了基于 ECS 的 Multicontainer Docker Environments,但是这个非常需要的更通用 Docker 部署选项不提供依次构建映像的能力:

Building custom images during deployment with a Dockerfile is not supported by the multicontainer Docker platform on Elastic Beanstalk. Build your images and deploy them to an online repository before creating an Elastic Beanstalk environment. [emphasis mine]

如上所述,由于 AWS 众所周知的敏捷性(参见 most recent ECS updates),我希望在不久的将来将其添加到 ECS,但他们通常不承诺路线图详细信息,因此很难估计我们需要等待多长时间。

同时 Amazon 推出了 EC2 Container Registry https://aws.amazon.com/ecr/ 如果您不喜欢 docker 集线器,它是一个私人 docker 存储库。与 ECS 服务完美集成。 但是它不会构建您的 docker 图像,因此它不能解决整个问题。

我使用 bamboo 服务器构建图像(源在 bitbucket 的 git 存储库中)。 Bamboo 将图像推送到 Amazon 的容器注册表。

我希望 Bitbucket Pipelines 能够通过更少的构建服务器配置使过程更加顺畅。从我看到的视频中,您的所有构建配置都位于您的存储库中。它仍处于封闭测试阶段,所以我想我们将不得不再等一段时间才能看到它最终会成为什么样子。