【发布时间】:2018-03-26 01:22:17
【问题描述】:
我正在为大学做一个项目,我以前从未使用过 docker,我通常在处理静态文件时使用 browser-sync,但现在当我在 docker-compose 上使用 Django 时(我关注 THIS教程),我不知道如何设置它,有人可以给我建议或指导我吗?
【问题讨论】:
标签: django docker-compose browser-sync
我正在为大学做一个项目,我以前从未使用过 docker,我通常在处理静态文件时使用 browser-sync,但现在当我在 docker-compose 上使用 Django 时(我关注 THIS教程),我不知道如何设置它,有人可以给我建议或指导我吗?
【问题讨论】:
标签: django docker-compose browser-sync
所以,我找到了解决方案,
首先按照教程here 使用 docker-compose 设置 django,最后你应该有一个工作的基础 django 项目。然后按照以下步骤操作。
如何将“livereload”与“docker-compose”一起使用:
在您的主机上,打开命令行或终端并执行:
pip install --upgrade pip
pip install django-livereload-server
pip install psycopg2-binary
PS:我在 docker-compose 中使用 psycopg2,这就是我安装它的原因, 如果您正在使用其他东西,请安装它而不是 psycopg2
现在将这一行添加到 requirements.txt 文件(来自教程)
django-livereload-server
文件应该是这样的(如果你按照教程一步一步来,你可以根据你要使用的db来改变)
Django==2.0
psycopg2-binary
django-livereload-server
打开终端,cd 到你的项目目录,然后执行:
docker-compose build
将新的 django-livereload 下载到您的 docker 环境中。
现在,您已经安装了所有东西,
您需要设置您的项目以使用 django-livereload-server 模块,
在你项目的 settings.py
将 livereload 添加到 INSTALLED_APPS:
INSTALLED_APPS = [
...
'livereload',
...
]
并将 livereload 中间件添加到 MIDDLEWARE:
MIDDLEWARE = [
...
'livereload.middleware.LiveReloadScript',
]
并确保 DEBUG 设置为 True。
现在您可以开始开发了,
在项目目录中打开 2 个控制台(终端)
在第一个做:
python manage.py livereload
等到服务器启动,当它工作时,让它继续运行,然后在第二个终端中执行:
docker-compose up
第二个终端的服务器正在运行 django 开发服务器,第一个终端的服务器正在为第一个终端提供 livereload.js 文件,django-livereload-server 模块使用该文件自动注入 css保存时重新加载html和js,..等
PS : 在启动第二个服务器之前,请确保第一个服务器 (livereload) 正在运行
我希望这会有所帮助!
【讨论】: