Заставьте docker-compose игнорировать папку внутри тома - PullRequest
0 голосов
/ 01 декабря 2018

Я использую docker-compose для настройки Rails.Чтобы синхронизировать файлы, я смонтировал каталог следующим образом (часть кода опущена):

app:
    build: .
    command: rails server -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app

Однако при запуске приложения я не хочу синхронизировать папку tmp,Добавление папки в dockerignore решает проблему только при создании образа Docker.Как можно игнорировать синхронизацию папки tmp между хостом и гостем при запуске docker compose?

Ответы [ 3 ]

0 голосов
/ 01 декабря 2018

Вы можете добавить второй том в подпуть.Это переопределит содержимое существующего тома.Вот так:

app:
    build: .
    command: rails server -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app
      - ./empty-tmp:/app/tmp

Это эффективно заставит /app/tmp показывать содержимое ./empty-tmp в хост-системе.Вместо отображения содержимого ./tmp

0 голосов
/ 01 декабря 2018

В итоге я просто отобразил все папки, которые хотел синхронизировать:

- ./app:/app/app
- ./lib:/app/lib
- ./log:/app/log
- ./spec:/app/spec

Что, похоже, решает проблему

0 голосов
/ 01 декабря 2018

Вы можете использовать том данных для хранения tmp, так как тома данных копируют данные из образа встроенного докера до монтирования каталога приложения

volumes:
- .:/app
- /path/to/tmp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...