Amazon web services 在AWS ECS上使用docker compose进行Continuos部署的最佳实践
我是ECS新手,对于如何使用带有多个服务的Amazon web services 在AWS ECS上使用docker compose进行Continuos部署的最佳实践,amazon-web-services,docker,docker-compose,amazon-ecs,Amazon Web Services,Docker,Docker Compose,Amazon Ecs,我是ECS新手,对于如何使用带有多个服务的docker compose文件在AWS ECS Fargate中自动部署有些困惑 我能够通过以下步骤执行从git推送到部署单个容器的端到端操作: 创建AWS ECR 标记docker图像 创建编解码器 创建代码构建 创建代码部署 创建具有任务描述的集群 创建管道以连接之前的所有内容,并将其自动化到最后 完成 但是当您有多个服务时会发生什么? 我是否必须修改docker compose文件才能与ECS兼容?如果是这样,如果整个项目都在一个文件夹(pyda
docker compose
文件在AWS ECS Fargate中自动部署有些困惑
我能够通过以下步骤执行从git推送到部署单个容器的端到端操作:
docker compose
文件才能与ECS兼容?如果是这样,如果整个项目都在一个文件夹(pydanny cookiecutter结构)中,如何分离存储库Django
+Postgres
+Redis
+Celery
+Celeryworker
+Celerybeat
+Flower
docker compose.yml
版本:“3”
卷数:
本地日志数据:{}
本地\u postgres\u数据\u备份:{}
服务:
django:&django
建造:
上下文:。
dockerfile:./compose/local/django/dockerfile
图片:test_cd_django
取决于:
-博士后
卷数:
-.:/app
环境文件:
-./.envs/.local/.django
-./.envs/.local/.postgres
端口:
- "8000:8000"
命令:/start
博士后:
建造:
上下文:。
dockerfile://撰写/制作/博士后/dockerfile
图片:考试、cd、博士后
卷数:
-本地postgres\u数据:/var/lib/postgresql/data
-本地\u postgres\u数据\u备份:/backups
环境文件:
-./.envs/.local/.postgres
redis:
图片:redis:3.2
芹菜工人:
这取决于是否要使用docker compose来执行所有操作。如果要使用docker compose构建、推送和拉取,则需要docker-compose.yml中的图像块与ECR地址匹配。
e、 g
我是否必须为docker compose的每个服务创建ECR存储库
您不必为每个服务创建ECR存储库,而是为您构建的每个映像创建ECR存储库。在您的情况下,您不必为redis创建回购,但您必须为django和postgres创建回购,因为您正在使用Dockerfiles构建它们。celeryworker和celerybeat正在使用django映像启动,因此您无需为他们创建额外的回购
自动化每个ECR的标记和推送以及相应的部署以实现完整的端到端流程的步骤是什么
这里我只能提供一些建议,这完全取决于你的设置。我倾向于尽可能保持对云服务的不可知论。
您可以在docker compose.yml
中定义图像,如下所示:
services:
postgres:
image: ${ID}.dkr.ecr.${region}.amazonaws.com/my_postgres:${image_tag:-latest}
django:
image: <theID>.dkr.ecr.<theRegion>.amazonaws.com/my_django:${image_tag:-latest}
如何修改docker compose的卷以在ECS上工作
不幸的是,我无法回答这个问题,我找到了以下答案:
非常感谢Stefano。你的评论很有帮助。我按照您告诉我的方式创建了一个独立的存储库。现在我正在努力提高我的服务水平。完成所有进度后,我将发布完整的解决方案。再次感谢你能管理好这个Wezen42吗?我也很好奇ECS上的docker compose
services:
postgres:
image: ${ID}.dkr.ecr.${region}.amazonaws.com/my_postgres:${image_tag:-latest}
django:
image: <theID>.dkr.ecr.<theRegion>.amazonaws.com/my_django:${image_tag:-latest}
image_tag=1.2.0