我发现用Docker部署Django的时候,有时候会非常麻烦


比如,我修改了Django里面某些模块的字段,那么就需要执行
python manage.py makemigrations
python manage.py migrate

有时候直接执行上面2个命令就可以了。有时候执行上面的命令,还需要确认 或者输入某些值 来让他更新表结构。可是我的Django运行在Docker里面,感觉执行起来特别麻烦,我甚至都不知道如何是好。请问大家是如何做的呢?
已邀请:

xiaolunsanguo - 京东商城-TIG-JDOS团队

赞同来自: dockerlove123


虽然不懂django,但我先根据我的揣测来解答吧。
我先来猜下你的工作流程:
1. 制作django镜像
4. 发布镜像,部署到生产环境
3. 迭代开发,需要修改数据库等,即修改镜像
4. 发布镜像,部署到生产环境
5. 重复3
我想你的问题应该应该出现在第3步,就是迭代开发的过程中。
如果是这种情况的话,你在做镜像时候,完全可以这样,把上一个版本的镜像,使用/bin/bash run起来成为一个新容器,进去做修改,python manage.py makemigrations/python manage.py migrate。然后把这个容器commit成为一个镜像。然后通过一个Dockerfile,修改镜像的entrypoint或者CMD为python manager.py runserver。这样完成一个新的镜像的迭代制作。

xds2000 - 数人科技CTO

赞同来自: dockerlove123


用compose来做。

要回复问题请先登录注册