在Elastic Beanstalk上部署Dockerized Django项目

时间:2018-07-18 22:12:51

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

我用Dockerfile,docker-compose.yml和dockerrun.aws文件创建了一个新的Django项目。

这就是我的项目结构的样子:

dockerproject
 -.idea
 -dockerapp
   -views.py
   -urls.py
   -models.py
   -...
 -dockerproject
 -templates
 -venv
 -db.sqlite3
 -docker-compose.yml
 -Dockerfile
 -Dockerrun.aws
 -manage.py
 -requirements

这是我的Dockerfile,docker-compose.yml(来自docker docs“ Compose and Django”)和dockerrun.aws的代码:

Dockerfile:

FROM ubuntu:15.04
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 8000

docker-compose.yml:

version: '2'
services:
    web:
        build: .
        command: python3 manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        depends_on:
            - db
    db:
        image: postgres

dockerrun.aws:

{
  "AWSEBDockerrunVersion": "1",
  "Volumes": [
    {
      "ContainerDirectory": "/var/app",
      "HostDirectory": "/var/app"
    }
  ],
  "Logging": "/var/eb_log"
}

如果我通过Docker-machine(Kitematic)在本地运行Docker容器,则通过在浏览器中输入以下网址可以使Django网站正常运行: dockermachine的IP地址:8000 / index.html

但是,如果我将所有项目文件(项目结构,请参见上文)压缩为一个zip文件并将其上传到弹性beantalk,则它会处于降级状态,并显示以下错误消息:

Application deployment failed at 2018-07-18T19:18:34Z with exit status 1 and error: Hook /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh failed.

这里是Elastic Beanstalk配置,用于将dockerize django应用程序部署到Elastic Beanstalk中:

  • 平台:Docker
  • 将代码作为Zip文件上传

上传的Zip文件包含以下文件和文件夹:

  -.idea
  -dockerapp
    -views.py
    -urls.py
    -models.py
    -...
  -dockerproject
  -templates
  -venv
  -db.sqlite3
  -docker-compose.yml
  -Dockerfile
  -Dockerrun.aws
  -manage.py
  -requirements

我已附加一个Zip文件,该文件必须作为弹性beantalk应用程序成功上传。

原因是什么,我的Docker配置在本地工作,但不能在弹性beantalk中工作?

预先感谢您的帮助。

最好的问候,

awsuser93

0 个答案:

没有答案