【发布时间】:2020-09-19 23:35:28
【问题描述】:
我有一个 Django 应用程序,其 docker 镜像的 Dockerfile 如下:
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip3 install -r requirements.txt
COPY . /code/
ENV PORT=8000
EXPOSE 8000
然后,我有一个docker-compose.yml 文件,用于为我的 Django 应用程序定义其他容器映像和依赖项,如下所示:
version: '3'
services:
web: &django_app
build: .
command: python3 manage.py runserver 0.0.0.0:8000
ports:
- "80:8000"
depends_on:
- rabbitmq
rabbitmq:
image: rabbitmq:latest
celery_worker:
<<: *django_app
command: celery -A DJingApp worker --loglevel=info
ports: []
depends_on:
- rabbitmq
正如您在上面看到的,我必须在任何时间点运行 3 个容器(web、rabbitmq 和 celery_worker)才能让我的 Django 应用程序正常工作。
那么,如何将这个项目的 Docker 映像部署到 AWS Elastic Beanstalk 并在那里运行它们?我必须对我的Dockerfile 或docker-compose.yml 进行任何更改吗?如果是,它们是什么?
【问题讨论】:
-
如果您尝试使用 docker-compose 和 docker 容器,我不确定 Beanstalk 是否是您想要使用的。如果您想在 AWS 中部署基于 docker 的堆栈,请使用 ECS 或 EKS。
-
@2ps AWS 文档说有一种方法可以将多容器 docker 映像部署到 Beanstalk,但是当我尝试时,我遇到了很多错误,我想我正在做它错了。所以,我想知道我的情况的正确分步程序。如果你明白了,请告诉我,因为我只是 AWS 的初学者
标签: python django amazon-web-services docker amazon-elastic-beanstalk