在docker-compose上使用与django的browser-sync

时间:2018-03-26 01:22:17

标签: django docker-compose browser-sync

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

1 个答案:

答案 0 :(得分:0)

所以,我找到了解决方案,
首先按照教程here设置django with docker-compose,到最后你应该有一个工作基础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

该文件应该如下所示(如果您按照教程一步一步地进行操作,则可以根据您要使用的数据库进行更改)

 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)在启动第二台服务器之前正常工作

我希望这有帮助!