我有一个运行在docker容器中的脚本,它通过inotifywait监听目录中的变化。该目录通过docker -v装载到主机系统。
由于某些原因,当此目录中的文件发生更改时,inotifywait不会触发。
这是有问题的脚本行
inotifywait -e create -e modify -e delete -e move /etc/nginx/sites-enabled容器是这样启动的(通过图2)
web:
build: .
ports:
- "80:80"
volumes:
- ./conf:/etc/nginx/sites-enabled当我通过fig up启动设置时,脚本会执行,但挂载卷中的更改不会触发inotify屏障。
发布于 2021-07-02 21:27:49
您必须将-mq添加到脚本中,如下所示:
inotifywait -mq -e create -e modify -e delete -e move /etc/nginx/sites-enabled我已经测试了这个解决方案,它是有效的。"m“代表"monitor”,"q“代表安静。
发布于 2020-06-19 22:05:03
我也遇到过类似的问题--在docker容器中丢失了inotify通知,结果发现问题出在将别名文件夹作为卷进行挂载时,在将主机文件夹替换为实际目录后,一切都开始正常工作。
在我的例子中,它是OS上的/tmp,因此在将它替换为/private/tmp:/tmp之后,容器开始接收inotify事件。
https://stackoverflow.com/questions/27917187
复制相似问题