Bind mounts в docker compose не синхронизирует локальные изменения в контейнер автоматически на Mac M1
Итак, я работал на Macbook (с чипом intel) и использовал шаблон django-cookie-cutter для запуска своего проекта. Там все работало нормально.
Затем я перешел на новый mac с чипом apple. Теперь мои изменения на хост-машине не реплицируются в докер-контейнер, т.е. контейнер не перезагружается автоматически.
В моем файле docker у меня есть контейнер 'docs', который перезапускается при изменениях, но для контейнера django я должен остановить его вручную с помощью cmd+c
и затем перезапустить его, чтобы изменения вступили в силу.
Вот мой файл local.yml (docker compose):
version: '3'
volumes:
papersdb_local_postgres_data: {}
papersdb_local_postgres_data_backups: {}
services:
django:
build:
context: .
dockerfile: ./compose/local/django/Dockerfile
image: papersdb_local_django
container_name: papersdb_local_django
platform: linux/x86_64
depends_on:
- postgres
volumes:
- type: bind
source: .
target: /app
working_dir: /app
env_file:
- ./.envs/.local/.django
- ./.envs/.local/.postgres
ports:
- "8000:8000"
command: /start
postgres:
build:
context: .
dockerfile: ./compose/production/postgres/Dockerfile
image: papersdb_production_postgres
container_name: papersdb_local_postgres
volumes:
- papersdb_local_postgres_data:/var/lib/postgresql/data:Z
- papersdb_local_postgres_data_backups:/backups:z
env_file:
- ./.envs/.local/.postgres
ports:
- "5433:5432"
docs:
image: papersdb_local_docs
container_name: papersdb_local_docs
platform: linux/x86_64
build:
context: .
dockerfile: ./compose/local/docs/Dockerfile
env_file:
- ./.envs/.local/.django
volumes:
- ./docs:/docs:z
- ./config:/app/config:z
- ./papersdb:/app/papersdb:z
ports:
- "9000:9000"
command: /start-docs
Вот привязка монтирования в результате docker inspect my_container_name
:
"Mounts": [
{
"Type": "bind",
"Source": "/Users/mazhar.ali/Projects/PapersDB/papersdb",
"Destination": "/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
У меня также есть другой проект с celery и celerybeat, оба они тоже перезапускаются при изменениях. Только контейнер django создает проблемы.
Я сделал резервную копию своего mac на другой диск с помощью "Time Machine". Затем переустановил docker desktop и заново установил его (поскольку старый не работал на новом чипе), что привело к удалению всех контейнеров и томов. Я не уверен, что это как-то связано с этим.