Docker django 部署

Docker django 部署

最近研究了一下如何用docker 打包django后台程序,记录一下踩到的坑,留给自己以后查看,如有错误欢迎各位大神指正。
这里记录一下最简单的,只是打包一个django后台,不涉及restful api 和数据库的连接。
用到的包:
django、docker、gunicorn、nginx
这里我们使用gunicorn来运行django的项目。
目录结构:

 .
├── README.md
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   └── sites-enabled
│       └── django_project
└── web
    ├── Dockerfile
    ├── backend
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── db.sqlite3
    ├── manage.py
    ├── requirements.txt
    ├── static
          ├── index.html
          └── main.css

docker-compose.yml

web:
  restart: always
  build: ./web
  expose:
    - "8000" # 暴露出8000端口,可以按照自己的需要修改
  volumes:
    - /usr/src/app
    - /usr/src/app/static
  env_file: .env
  environment:
    DEBUG: 'true' 
  command: /usr/local/bin/gunicorn backend.wsgi:application -w 2 -b :8000 # 运行django

nginx:
  restart: always
  build: ./nginx/
  ports:
    - "80:80"
  volumes:
    - /www/static
  volumes_from:
    - web
  links:
    - web:web # 这里设置可以访问到web容器的内容

./nginx/Dockerfile
nginx 的配置文件在这里不展开了。

FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled

./web/Dockerfile
这里我们利用Python3.5来构建项目。如果其他版本可以修改此文件

FROM python:3.5-onbuild 

后面关于django的其他文件在这里我不做过多的描述了。

运行方式

docker-compose build
docker-compose up -d

你可能感兴趣的:(Python)