【问题标题】:How to Start Cron / Crond inside the Official Postgres Container如何在官方 Postgres 容器中启动 Cron / Crond
【发布时间】:2017-10-10 14:54:38
【问题描述】:

crond 默认不在official postgres alpine image 中运行。我如何定义我的Dockerfile 以确保守护程序在后台运行?我希望它在默认情况下运行,如果可能的话,即使容器重新启动也是如此。

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

更新

我已经添加了tianon的答案:

[...] 如果您必须在容器内运行 crond,我建议您改用 一个单独的容器,它只运行 crond(因此 Docker 可以 都跟踪它的生命周期,并在/如果它失败时重新启动它,机器 重启等)。您应该能够连接到 PostgreSQL 来自第二个容器的实例,但如果绝对必要,一个 可以使用 --network container:some-postgres 之类的东西来 直接加入数据库容器的网络命名空间。

【问题讨论】:

    标签: postgresql docker cron daemon


    【解决方案1】:

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

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

    然后您必须重新启动 PostgreSQL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 2019-03-16
      • 1970-01-01
      • 2019-11-23
      • 2019-11-13
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多