2015-01-13 38 views
7

私は、ドッカーコンテナ内でスクリプトを実行しており、ディレクトリの変更をinotifywaitでリッスンしています。ディレクトリはdocker -vを介してホストシステムにマウントされます。docker-containerのinotifywaitは変更を登録しません

このディレクトリ内のファイルが変更されると、何らかの原因で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経由でセットアップを起動すると、スクリプトが実行されるが、変更マウントされたボリュームでは、inotify-barrierがトリガーされません。

+0

は、inotifyを始めたディレクトリとファイルを作成し、通知を受けました。だから、 'docker -v'のボリュームに関連しているようです。 – user2915097

+0

docker!= virtualization、これはdockerが分離を維持できないedgecaseです。 –

+0

'docker -v'で作成されたdocker compose(fig)ボリュームを使って同じ動作をしています。 –

答えて

0

(ちょうど私がboot2dockerタグを見たため)あなたのコンテナはファイルが変更されたのを確認できますか?あなたのホストに書いたのであれば、dockerデーモンを実行しているVM上ではなく、あなたのmac上でinotifyイベントになります。

TL; DR:私はのinotify-toolsをインストールし、基本的なコンテナ、でチェックオン/マウントboot2docker sshをタッチ/ファイル/ /ボリューム

関連する問題