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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在docker-compose上使用与django的browser-sync相关的知识,希望对你有一定的参考价值。

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

答案

所以,我找到了一个解决方案, 首先按照教程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

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

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

我希望这有帮助!

以上是关于在docker-compose上使用与django的browser-sync的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose 和 django 出错

在 docker-compose 中运行 Django 应用程序:与 postgres db 的连接第一次拒绝但之后可以工作

使用 docker-compose 链接 django 和 mysql 容器

如何使用 pycharm 调试在 docker-compose 中运行的进程

django 无法在 docker-compose 中连接 mysql

Django容器(上): 自定义基础镜像