[英]Multi-Container Docker on AWS
我似乎无法理解 Dockerrun.aws.json 文件,这是在 AWS Elastic Beanstalk 上运行多容器 docker 环境所必需的。
当我通过 Docker-Compose 运行我的应用程序时,在本地一切正常。以下是我的 docker-compose.yml 文件:
version: '2'
services:
interfaceserver:
build: .
command: daphne -b 0.0.0.0 -p 8000 restbench.asgi:channel_layer
user: app
working_dir: /app
ports:
- 8000:8000
depends_on:
- database
- redis
workerserver:
build: .
user: app
working_dir: /app
command: python manage.py runworker
depends_on:
- database
- redis
database:
image: postgres:9.5
redis:
image: redis:3.0-alpine
本质上我正在尝试运行四个服务。 一个接口服务器、一个工作服务器、一个 Postgres 数据库和一个 Redis 服务器。 Interface-Server 和 Worker-Server 以及我自己的 Django 从本地 Dockerfile 构建,它们与 docker-compose.yml 在同一目录中
现在我正在尝试将我的应用程序部署到 Elastic Beanstalk,据我所知,我需要一个 Dockerrun.aws.json,它与 docker-compose.yml 相同,仅适用于 AWS。 我尝试阅读 EBS 的文档,但正如我上面提到的,我无法理解指定接口和工作服务器的部分。 数据库和 Redis 部分很简单,但我不明白如何在 AWS 的 json 文件中指定如何构建这两个服务器。
非常感谢任何帮助。
我们不再可以在“ AWSEBDockerrunVersion:2”中从Dockerfile构建映像。 通过使用“ AWSEBDockerrunVersion:1”,可以使用单个Dockerfile进行单个容器设置。
在您的情况下,您必须自己构建并推送图像,或者让CI服务器来完成。 在Dockerrun.aws.json v2中定义图像。
来自AWS文档的参考-
Docker映像 -用于Elastic Beanstalk的Multicontainer Docker平台需要预先构建映像并将其存储在公共或私有在线映像存储库中。 Elastic Beanstalk上的多容器Docker平台不支持使用Dockerfile部署期间构建自定义映像。 在创建Elastic Beanstalk环境之前,请构建您的映像并将其部署到在线存储库。
根据文档,Amazon Linux 2 现在支持 docker-compose 个文件,不再需要为多容器 Docker 环境预构建图像的限制。
Amazon Linux AMI 上的多容器 Docker 平台要求您指定预构建的应用程序映像作为容器运行。 迁移后,您将不再有此限制,因为 Amazon Linux 2 Docker 平台还允许 Elastic Beanstalk 在部署期间构建您的容器镜像。
...
Docker Compose 工具使用 docker-compose.yml 文件来配置您的应用程序服务。 此文件替换应用程序项目目录和应用程序源包中的 Dockerrun.aws.json v2 文件。
我们还没有迁移我们的环境,但这听起来很有希望。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.