【问题标题】:How can I make changes in Django runtime?如何在 Django 运行时中进行更改?
【发布时间】:2019-03-06 07:36:34
【问题描述】:

我在 docker 上开发 django 时遇到了困难。当我对代码进行任何更改时,我需要重新启动整个容器才能使更改生效。

我在本地安装了一个文件系统,并且在本地进行了更改。但即使我直接在容器中进行更改,进行迁移或touch 受影响或 wsgi 文件,更改也不会生效。

这是撰写文件中的图像

backend:
    container_name: 'backend'
    image: dronetag/alpha-docker/backend
    build: ./images/backend/
    command: >
        sh -c  "
              python manage.py collectstatic --no-input;
              python manage.py migrate;
              gunicorn backend.wsgi -b 0.0.0.0:80;"
    ports:
      - "10080:80"
      - "10443:443"
    volumes:
      - ./src/backend:/src
    depends_on:
      - postgres
    links:
      - redis
      - postgres

Dockerfile

FROM python:3.6
ENV PYTHONUNBUFFERED 1
ENV C_FORCE_ROOT true
RUN mkdir /src
WORKDIR /src
COPY requirements.txt .
RUN pip install -r requirements.txt

【问题讨论】:

标签: python django docker


【解决方案1】:

只要你处于开发环境中,你就可以使用 django 开发服务器,它会相应地刷新所有内容。

只需将gunicorn backend.wsgi -b 0.0.0.0:80python manage.py runserver 交换即可。

请注意,这不适合生产环境。但是那里通常不需要热代码重新加载。

【讨论】:

  • gunicorn backend.wsgi -b 0.0.0.0:80 --reload 和你的建议有区别吗(注意 --reload 标志)?
  • 不,据我所知,它不应该有任何区别。就开发而言,我只是选择了简单的内置解决方案。
猜你喜欢
  • 2011-09-25
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2010-11-02
相关资源
最近更新 更多