我正在寻找一种设计模式来聆听"对于目录中的文件更改(它们都是带有Makefile的.sql文件),如果有任何更改,则执行命令。
在我的存储库中,我有三种类型的数据:
如果node.js文件(1)发生更改,则node.js容器必须重新启动。如果PostgreSQL config(2)发生更改,PostgreSQL数据库必须重新启动。这两件事都很简单。但是如果SQL文件发生了变化(3),那么我需要运行make
命令来使用.sql
处理psql
文件,而无需重新启动node.js或PostgreSQL。
挑战在于,make
命令通常会在完成后退出。因此,如果它是以dockerfile的形式创建的,一旦它退出,它将不断被docker不必要地重新启动。除了向我的sleep 99999999
添加hacky Makefile
类型的命令之外,是否有任何普遍接受的此类"运行一次然后退出"使用docker的要求?
答案 0 :(得分:0)
您正在描述一个常见的"持续集成"图案。文件被提交到Subversion或Git等源代码修订系统中。然后,像Jenkins这样的构建服务器会自动检测对这些文件的更改,这些服务器执行" docker build"和#34; docker push" (假设您使用本地注册表在组织内分发构建的图像)。