【发布时间】:2015-01-07 11:33:36
【问题描述】:
我正在寻找一种设计模式来“监听”目录中的文件更改(它们都是带有 Makefile 的 .sql 文件)并在有任何更改时执行命令。
在我的存储库中,我有三种类型的数据:
- node.js 文件
- PostgreSQL 配置
- 用于配置 PostgreSQL 的 SQL 文件
如果 node.js 文件 (1) 发生更改,则 node.js 容器必须重新启动。如果 PostgreSQL 配置 (2) 更改,则 PostgreSQL 数据库必须重新启动。这两个都很容易。但是如果 SQL 文件发生更改 (3),那么我需要运行 make 命令来使用 psql 处理 .sql 文件,而无需重新启动 node.js 或 PostgreSQL。
挑战在于这个make 命令通常会在完成后退出。因此,如果它是以 dockerfile 的形式创建的,一旦它退出,它就会被 docker 不必要地不断重启。除了在我的Makefile 中添加一个 hacky sleep 99999999 类型的命令之外,对于这种使用 docker 的“运行一次然后退出”要求,是否有任何普遍接受的做法?
【问题讨论】:
-
使用 inotify en.wikipedia.org/wiki/Inotify 或 Python 中的 pyinotify pyinotify.sourceforge.net
-
@user2915097 我知道许多用于监视文件更改的解决方案。事实上 docker 包含了它自己的这样一个解决方案,所以这就是为什么我要问是否有一个“docker 方式”来做到这一点。
标签: docker provisioning