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 и заново установил его (поскольку старый не работал на новом чипе), что привело к удалению всех контейнеров и томов. Я не уверен, что это как-то связано с этим.

Вернуться на верх