Docker:监听.sql更改并重新配置数据库

时间:2015-01-07 11:33:37

标签: docker provisioning

我正在寻找一种设计模式来聆听"对于目录中的文件更改(它们都是带有Makefile的.sql文件),如果有任何更改,则执行命令。

在我的存储库中,我有三种类型的数据:

  1. node.js files
  2. PostgreSQL config
  3. 用于配置PostgreSQL的SQL文件
  4. 如果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的要求?

1 个答案:

答案 0 :(得分:0)

您正在描述一个常见的"持续集成"图案。文件被提交到Subversion或Git等源代码修订系统中。然后,像Jenkins这样的构建服务器会自动检测对这些文件的更改,这些服务器执行" docker build"和#34; docker push" (假设您使用本地注册表在组织内分发构建的图像)。