2015-01-13 6 views
7

У меня есть скрипт, запущенный внутри контейнера-докера, который слушает изменения в каталоге через inotifywait. Каталог устанавливается на хост-систему через docker -v.inotifywait in docker-container не регистрирует изменения

По какой-то причине inotifywait не запускается при изменении файлов внутри этого каталога.

Это проблематичный сценарий, он-лайн

inotifywait -e create -e modify -e delete -e move /etc/nginx/sites-enabled 

Контейнер запускается как это (с помощью рис)

web: 
    build: . 
    ports: 
    - "80:80" 
    volumes: 
    - ./conf:/etc/nginx/sites-enabled 

При запуске установки через fig up, сценарий выполняется, но изменения в смонтированном объеме не запускают защитный барьер.

+0

Я проверил с базовым контейнером, установленным Inotify-инструментов, начал Inotify, создал каталог и файл, и был уведомлен. Таким образом, это похоже на тома с 'docker -v' – user2915097

+0

docker! = Виртуализация, может быть, это edgecase, где докер не может сохранить изоляцию. –

+0

Я наблюдаю такое же поведение, используя тома docker compose's (fig), которые создаются с помощью 'docker -v'. –

ответ

0

(Только потому, что я видел тег boot2docker). Вы уверены, что ваш контейнер может увидеть, что файл был изменен? Если вы написали на своем хосте, это будет событие inotify на вашем Mac, а не на виртуальной машине, в которой запущен демон докеров.

TL; DR: boot2docker SSH сенсорный/файл/на/смонтированного/объем