您的位置:首页 > 运维架构 > Docker

Docker django 部署

2018-01-13 11:37 375 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: