繁体   English   中英

AWS 上的多容器 Docker

[英]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文档的参考-

根据文档,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM