如何在官方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。