every
默认情况下crond
未运行。我怎样才能定义我的Dockerfile
以确保守护进程在后台运行?我希望它默认运行,如果可能的话,即使容器重新启动也是如此。
我尝试将CMD ["/usr/sbin/crond"]
添加到Dockerfile
但我没有成功。有任何想法如何与postgres
结合使用?
更新
我添加了official postgres
alpine image的答案:
[...] 如果你必须在容器内运行crond,我建议改为使用 一个单独的容器,除了crond之外什么都不运行(因此Docker可以 它们都跟踪它的生命周期,并在机器发生故障时重启它 重启等)。您应该能够连接到PostgreSQL 来自第二个容器的实例,但如果绝对必要,则为一个 可以使用像--network container:some-postgres这样的东西 直接加入数据库容器的网络命名空间。
答案 0 :(得分:1)
pg_cron
必须添加到shared_preload_libraries
。根据文档:
# add to postgresql.conf:
shared_preload_libraries = 'pg_cron'
然后你必须重新启动 PostgreSQL。