在 docker-compose 上使用浏览器与 django 同步

using browser-sync with django on docker-compose

我正在做一个大学项目,我以前从未使用过 docker,我通常在处理静态文件时使用浏览器同步,但现在当我在 [=14] 上使用 Django 时=]-compose(我遵循了 THIS 教程),我不知道如何设置它才能工作,有人可以给我建议或指导我吗?

所以,我找到了解决方案,
按照教程 here 使用 docker-compose 设置 django 开始,到最后你应该有一个工作的基础 django 项目。然后按照以下步骤操作。

如何将 "livereload" 与 "docker-compose" 一起使用:
在您的主机上,打开命令行或终端并执行:

pip install --upgrade pip
pip install django-livereload-server
pip install psycopg2-binary

PS: i'm using psycopg2 in docker-compose that's why i'm installing it, if you're using something else, install it instead of psycopg2

现在将这一行添加到 requirements.txt 文件(来自教程)

 django-livereload-server

文件应该是这样的(如果你是按照教程一步一步来的,你可以根据你想使用的数据库来改变)

 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 使用- 服务器模块注入 css,保存时自动重新加载 html 和 js,.. etc

PS : make sure the first server (livereload) is working before you launch the second one

希望对您有所帮助!