AWS上的多容器Docker

时间:2017-08-11 06:27:27

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

我似乎无法了解Dockerrun.aws.json文件,这是在AWS Elastic Beanstalk上运行多容器泊坞窗环境所必需的。

当我通过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 Builds来自本地Dockerfile,它们与docker-compose.yml在同一目录下

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我们无法在“AWSEBDockerrunVersion:2”中从Dockerfile构建图像。通过使用“AWSEBDockerrunVersion:1”,我们可以使用单个Dockerfile设置单个容器。

在你的情况下,你必须建立&您自己推送图像或让CI服务器执行此操作。在Dockerrun.aws.json v2中定义图像。

来自AWS文档的参考 -