Django live reload не работает со вторым файлом docker-compose
Я хочу создать 2 окружения. Тестовое и стандартное окружение dev. Мне нужно запустить тестовый сервер django в тестовом окружении и обычный сервер manage.py runserver
в другом. Основное dev окружение будет использовать docker-compse.yml, а тестовое окружение будет использовать test.yml. Когда я запускаю docker-compose up
, live-reload работает нормально. Когда я запускаю docker-compose -f test.yml up
, тестовый сервер работает, но docker не выполняет живую перезагрузку. Я добавляю одинаковые сервисы в оба файла, чтобы сократить синтаксис CLI.
docker-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
test.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 &&
python manage.py migrate && 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