从零开始使用 Docker 打包 Django 开发环境 (6) uWSGI、Django

1. 目录结构

  • django-devops-uwsgi 目录是打包 uWSGI 和 Django 的镜像编译文件。在镜像中安装 uWSGI、pip、virtualenv等必要的程序包。在使用镜像创建容器时,执行 start.sh 脚本, 创建 Python 虚拟运行环境,从 Django 的 requirements.txt 安装依赖包,最后启动 uWSGI 监听端口,等待请求。
  • django-devops-compose/www/app 目录,用于放置 Django 的代码。需要说明的是:为了减少工程的目录层级,通过改造,将 url、settings 等与工程全局相关的文件移动到了根目录。
  • django-devops-compose/www/conf 目录,用于存放 uWSGI 配置和环境变量。这里的环境变量有 pip 源地址等。
  • django-devops-compose/www/env 目录用于存放 virtualenv 创建的 Python 虚拟环境。这是为了避免,每次启动容器时,都需要重新安装依赖包,加快容器启动时间。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
└── django-devops-uwsgi
│   ├── Dockerfile
│   └── start.sh
├── django-devops-compose
│   ├── docker-compose.yml
│   └── www
│       ├── app
│       │   ├── manage.py
│       │   ├── requirements.txt
│       │   ├── settings.py
│       │   ├── static
│       │   ├── urls.py
│       │   ├── wsgi.py
│       ├── conf
│       │   ├── common.env
│       │   ├── uwsgi.ini
│       ├── env
│       ├── log
│       │   ├── mysql
│       │   └── uwsgi

2. Dockerfile