Как я могу внести изменения во время выполнения Django? - PullRequest
0 голосов
/ 06 марта 2019

Мне тяжело разрабатывать 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

1 Ответ

2 голосов
/ 06 марта 2019

Пока вы находитесь в среде разработки, вы можете использовать сервер разработки django, и он обновит все соответствующим образом.

Просто поменяйте gunicorn backend.wsgi -b 0.0.0.0:80 на python manage.py runserver.

Обратите внимание, что это не подходит для продуктивной среды. Но там вам обычно не нужна горячая перезагрузка кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...