2015-01-13 41 views
7

我有一個在docker-container中運行的腳本,該腳本通過inotifywait監聽目錄中的更改。該目錄通過docker -v安裝到主機系統。docker-container中的inotifywait沒有註冊更改

出於某種原因,當此目錄中的文件發生更改時,不會觸發inotifywait。

這是

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

當我開始經由fig up設置時,執行該腳本的問題腳本行

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

容器開始這樣的(經由圖),但改變在安裝的音量中不會觸發inotify-barrier。

+0

我有一個基本的容器,安裝inotify工具檢查,開始的inotify,創建的目錄和文件,併發出通知。所以它似乎與'docker -v' – user2915097

+0

docker!=虛擬化的卷有關,也許這是docker無法保持隔離的edgecase。 –

+0

我看到使用docker -v創建的docker compose(fig)卷的相同行爲。 –

回答

0

(只是因爲我看到boot2docker標籤)你確定你的容器能看到文件改變了嗎?如果你在你的主機上寫道,它將是你mac上的inotify事件,而不是運行docker守護進程的虛擬機。

TL; DR:boot2docker SSH觸摸/文件/打開/安裝/體積