django - AWS 上的多容器 Docker

标签 django amazon-web-services docker amazon-elastic-beanstalk

我似乎无法理解 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

本质上,我正在尝试运行四个服务。一个接口(interface)服务器、一个工作服务器、一个 Postgres 数据库和一个 Redis 服务器。 Interface-Server 和 Worker-Server 以及我自己的 Django 从与 docker-compose.yml 位于同一目录中的本地 Dockerfile 构建

现在我正在尝试将我的应用程序部署到 Elastic Beanstalk,据我了解,我需要一个 Dockerrun.aws.json,它与 docker-compose.yml 相同,仅适用于 AWS。我尝试从 EBS 阅读文档,但正如我上面提到的,我无法理解我指定 Interface-和 Worker-Server 的部分。数据库和 Redis 部分很简单,但我不明白如何在 AWS 的 json 文件中指定如何构建这两个服务器。

非常感谢任何帮助。

最佳答案

我们不能再在“AWSEBDockerrunVersion: 2”中从 Dockerfile 构建镜像。如果我们使用“AWSEBDockerrunVersion: 1”使用单个 Dockerfile 设置单个容器,这是可能的。

在您的情况下,您必须自己构建和推送图像,或者让您的 CI 服务器来完成。在 Dockerrun.aws.json v2 中定义图像。

来自 AWS 文档的引用 -

  • http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html#create_deploy_docker_v2config_dockerrun
  • docker 图片 -
    用于 Elastic Beanstalk 的多容器 Docker 平台需要预先构建镜像并将其存储在公共(public)或私有(private)在线镜像存储库中。
    Elastic Beanstalk 上的多容器 Docker 平台不支持在部署期间使用 Dockerfile 构建自定义镜像。在创建 Elastic Beanstalk 环境之前,构建您的镜像并将其部署到在线存储库。
  • 关于django - AWS 上的多容器 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628351/

    相关文章:

    python - Django 多重继承 E005

    linux - 从 1 个 ec2 实例 rsync 到另一个实例

    amazon-web-services - AWS ECS Zuul路由

    java - 使用 java SDK 在 S3 AWS 上上传文件时无法设置元数据

    docker - 如何在 CentOS7 中更改 docker daemon 根目录

    python - 如何使用 python3 创建虚拟环境

    django - 如何将模型中的实际 html 注入(inject)到模板中?

    python - Django:具有不同功能的相同模型?

    ruby-on-rails - ECS 上的 Rails 迁移

    docker - Fluentd无法连接到ElasticSearch集群