2015-01-13 12 views
7

Ich habe ein Skript in einem Docker-Container ausgeführt, die auf Änderungen in einem Verzeichnis über inotifywait wartet. Das Verzeichnis wird über docker -v an das Hostsystem angehängt.inotifywait in Docker-Container registriert keine Änderungen

Aus irgendeinem Grund wird inotifywait nicht ausgelöst, wenn Dateien in diesem Verzeichnis geändert werden.

Dies ist die problematische Skript-line

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

Der Behälter wie diese gestartet wird (via Bild)

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

Wenn ich das Setup über fig up starten, wird das Skript ausgeführt, aber Änderungen im montierten Volumen nicht die Inotify-Barriere auslösen.

+0

ich mit einem Grundbehälter geprüft, installiert inotify-Tools, begann erstellt inotify, ein Verzeichnis und eine Datei, und wurde in Kenntnis gesetzt. So scheint es im Zusammenhang mit Volumes mit 'Docker -v' – user2915097

+0

Docker! = Virtualisierung, vielleicht ist dies ein Edgecase wo Docker kann nicht die Isolierung aufrecht zu erhalten. –

+0

Ich sehe das gleiche Verhalten mit den (fig) Volumes von docker compose, die mit 'docker -v' erstellt wurden. –

Antwort

0

(Nur weil ich Boot2docker Tag sah) Sind Sie sicher, dass Ihr Container die Datei geändert sehen kann? Wenn Sie auf Ihren Host geschrieben haben, wird dies auf Ihrem Mac als inotify-Ereignis angezeigt, nicht auf der VM, auf der der Docker-Dämon ausgeführt wird.

TL; DR: boot2docker ssh touch/file/auf/montiert/Volumen