这篇文章算是对近期将 Django Project 封装到 Docker Container 中的经验总结。
灵感思路取自这篇文章:
https://realpython.com/django-development-with-docker-compose-and-machine/
但是又略有不同:主要是根据项目需要,把文章中的 nginx container 替换为了 Caddy container,方便做全站 HTTPS 加密;另外,也对用 PyCharm 开发调试封装在 Docker Container 中的 Django 应用做了一些探索实践。
整个示例代码:https://github.com/ferstar/dockerizing-django
安装 Docker 相关
我开发机是 Windows 平台,平时比较常用 VirtualBox,所以安装的是 Docker Toolbox ,没有使用 Windows 自带的 Hyper-V 虚拟化方式。具体安装步骤很简单,根据官方说明一路 Next 即可。
装好后看下输出:
|
|
你可能会遇到如下错误提示:
|
|
解决方法是去 https://github.com/docker/docker-credential-helpers/releases 下载这货 docker-credential-wincred-v0.6.0-amd64.zip,解压docker-credential-wincred.exe
到 Docker Toolbox 的目录下,一般是C:\Program Files\Docker Toolbox\
,就 OK 了。
接下来克隆我的示例代码
git clone https://github.com/ferstar/dockerizing-django.git
整个目录结构应该是这样:
|
|
在 PyCharm 中开发调试
- 打开代码目录 -
File -> Open -> dockerizing-django
- 配置 Docker -
File -> Settings -> Build, Execution, Deployment -> Docker -> Tool[docker-machine, docker-compose]
- 配置 Project Interpreter -
File -> Settings -> Project dockerizing-django -> Project Interpreter -> Add -> Docker Compose -> Service: web -> OK
- 配置 Build Docker Image -
Run -> Edit Configurations -> + -> Docker -> Docker Compose -> Service(s): web -> OK
- 配置 RUN Configurations -
Run -> Edit Configurations -> + -> Host: 0.0.0.0 -> OK
- 初始化数据库 -
docker-compose run --no-deps --rm web python manage.py migrate
- 静态文件整理 -
docker-compose run --no-deps --rm web python manage.py collectstatic
- Build && Run~ have fun!
没图貌似不行,配图见我的专栏文章 https://zhuanlan.zhihu.com/p/38133078
生产环境配置只需要指明使用 production.yml 即 docker-compose -f production.yml xxx
PS:项目中还用到了 RabbitMQ 管理队列服务,大概贴下 docker-compose.yml 内容(示例代码中没有涉及到)
|
|