代码之家  ›  专栏  ›  技术社区  ›  Mohamed Benkedadra

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

  •  0
  • Mohamed Benkedadra  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mohamed Benkedadra    6 年前

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

    现在添加到需求中。txt文件(来自教程)此行

     django-livereload-server
    

    文件应该是这样的(如果您按照教程一步一步地操作,您可以根据要使用的db进行更改)

     Django==2.0
     psycopg2-binary
     django-livereload-server
    

    打开终端,cd到您的项目目录,然后执行以下操作:

    docker-compose build 
    

    将新的django livereload下载到docker环境。
    现在,您已经安装了所有设备,
    您需要设置项目以使用django livereload服务器模块,
    在项目的设置中。py公司 将livereload添加到已安装的应用程序:

    INSTALLED_APPS = [
        ...
        'livereload',
        ...
    ]
    

    并将livereload中间件添加到中间件中:

    MIDDLEWARE = [
        ...
        'livereload.middleware.LiveReloadScript',
    ]
    

    并确保DEBUG设置为True。

    现在您可以开始开发,
    在项目目录中打开2个控制台(终端)

    在第一种情况下,请执行以下操作:

    python manage.py livereload
    

    等待服务器启动,当它工作时,让它保持运行,然后在第二个终端中执行以下操作:

    docker-compose up 
    

    第二个终端中的服务器正在运行django开发服务器,第一个终端中的服务器正在向第一个终端提供livereload。django livereload服务器模块使用js文件注入css,保存时自动重新加载html和js。。等

    PS:在启动第二台服务器之前,确保第一台服务器(livereload)正常工作

    我希望这有帮助!