我有一个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 ElasticBean秸秆并在那里运行呢?我的Dockerfile或docker-compose.yml有什么改变吗?如果是,他们是什么?
发布于 2020-06-01 18:55:38
将一个多容器应用程序部署到ElasticBean秸秆上是很有挑战性的。您需要一个Dockerrun.aws.json版本2配置文件,它是一个特定于ElasticBean秸秆的JSON文件,该文件描述了如何将一组Docker容器部署为ElasticBean秸秆应用程序。
如果您不知道如何创建配置文件,我建议您检查一下官方页面。
此外,您还可以使用容器变换实用程序将docker-compose文件转换为Dockerrun.aws.json配置文件,我认为这非常有用。您可能需要对自动生成的文件进行一些更改。
此外,要定制您的环境,您需要使用.ebextensions。例如定义Django设置路径、WSGI路径、web服务器配置、在部署前执行Django管理命令等等。
对于详细日志,我建议在以下几个方面使用环境日志:
弹性豆柄.环境.“你的环境-名称”-原木
备注:我建议使用eb部署来成功部署,因为您需要以.zip文件格式部署源代码。
https://stackoverflow.com/questions/62136102
复制相似问题