живая перезагрузка django не работает со 2-м файлом docker-compose

#django #docker #docker-compose

Вопрос:

Я хочу создать 2 среды. Тестирование и стандартная среда разработки. Мне нужно запустить тестовый сервер django в тестовой среде, а manage.py runserver с другой стороны, обычный сервер. Основная среда разработки не будет использовать docker-compse.yml, а тестовая среда будет использовать test.yml. Когда я бегу docker-compose up , перезагрузка в реальном времени работает нормально. Когда я запускаю docker-compose -f test.yml up , тестовый сервер запускается, но docker не выполняет живые перезагрузки. Я добавляю одни и те же службы в оба файла, чтобы сократить синтаксис CLI.

докер-compose.yml

 version: "3.9"

services:
    web:
        build: 
          dockerfile: ./compose/django/Dockerfile
          context: .
        container_name: main_app_django
        env_file: 
          - ./.local/.env
        command: compose/django/start.sh
        volumes:
          - .:/code
        ports:
          -  "8000:8000"
    
    redis:
      container_name: main_app_redis
      image: "redis:alpine"
      command: redis-server
      ports:
        - "6379:6379"
    

    celeryworker:
      build: 
        dockerfile: ./compose/celery/Dockerfile
        context: .
      container_name: main_app_celery
      command: celery -A app worker -l INFO
      env_file: 
        - ./.local/.env
      volumes:
        - .:/code 
      depends_on:
        - redis   
 

тест.yml

 version: "3.9"

services:
    web:
      build: 
        dockerfile: ./compose/django/Dockerfile
        context: .
      container_name: test_main_app_django
      env_file: 
        - ./.local/.env
      command: > 
        sh -c "python manage.py makemigrations amp;amp;
          python manage.py migrate amp;amp; python manage.py testserver cypress/fixtures/user.json cypress/fixtures/tracks.json --addrport 0.0.0.0:8000"
      volumes:
        - .:/code
      ports:
        -  "8000:8000"
    
    redis:
      container_name: test_main_app_redis
      image: "redis:alpine"
      command: redis-server
      ports:
        - "6379:6379"
    
    celeryworker:
      build:
        dockerfile: ./compose/celery/Dockerfile
        context: .
      container_name: test_main_app_celery
      command: celery -A appworker -l INFO
      env_file: 
        - ./.local/.env
      volumes:
        - .:/code
      depends_on:
        - redis


 

Комментарии:

1. вы проверили, работает ли «dev» django, прежде чем пытаться запустить «тестовый» сервер?

2. Да, он работает. Я изменил несколько файлов, пока не заметил, что он не перезагружается .