如何在官方Postgres容器内启动Cron / Crond

时间:2017-10-09 12:51:54

标签: postgresql docker cron daemon

every默认情况下crond未运行。我怎样才能定义我的Dockerfile以确保守护进程在后台运行?我希望它默认运行,如果可能的话,即使容器重新启动也是如此。

我尝试将CMD ["/usr/sbin/crond"]添加到Dockerfile但我没有成功。有任何想法如何与postgres结合使用?

更新

我添加了official postgres alpine image的答案:

  

[...]   如果你必须在容器内运行crond,我建议改为使用   一个单独的容器,除了crond之外什么都不运行(因此Docker可以   它们都跟踪它的生命周期,并在机器发生故障时重启它   重启等)。您应该能够连接到PostgreSQL   来自第二个容器的实例,但如果绝对必要,则为一个   可以使用像--network container:some-postgres这样的东西   直接加入数据库容器的网络命名空间。

1 个答案:

答案 0 :(得分:1)

pg_cron必须添加到shared_preload_libraries。根据文档:

 # add to postgresql.conf:
 shared_preload_libraries = 'pg_cron'

然后你必须重新启动 PostgreSQL。