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

crond在官方postgres阿尔卑斯形象中并没有默认运行。 我怎么能定义我的Dockerfile来确保守护进程在后台运行? 我希望它在默认情况下运行,如果可能的话,即使容器重新启动。

我试图添加CMD ["/usr/sbin/crond"]到我的Dockerfile但我没有成功。 任何想法如何结合postgres运行这个?

更新

我添加了天翁的答案:

[…]如果你必须在一个容器中运行crond,我build议使用一个单独的容器,它除了crond以外什么都不运行(因此Docker可以跟踪它的生命周期,并且当/如果失败时重启,机器重启等等)。 你应该能够从第二个容器连接到PostgreSQL实例,但是如果绝对必要的话,可以使用–network container:some-postgres来直接join数据库容器的networking名称空间。

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

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

然后你必须重新启动 PostgreSQL。