Docker:为不同的容器运行 Cronjob

Bas*_*erg 5 cron best-practices docker

我正在寻找有关为我的 php fpm 容器运行 cronjobs 的最佳实践。

现在运行:

  • NGINX 容器
  • PHP FPM 容器
  • MySQL 容器

我现在希望运行另一个名为“Cronjob Container”的容器,它在我的 PHP FPM 容器中执行脚本(我需要一些 PHP 依赖项)。

所以三种可能的解决方案:

1.) 运行自己的容器

我很想使用这个解决方案!

最好有一个运行 CRON 的容器,我可以(以某种方式)在我的 php fpm 容器上调用 docker exec ......或者有另一种方式。

2.) 在 PHP 容器内运行 CRON

这没问题,但不是最佳实践。我可以在运行 cron 的 php fpm 容器中启动第二个进程。这会起作用,但我不确定这是否是您应该与 docker 一起工作的人。

3.) 运行主机 Cron

这将是残酷的。我需要找到给定路径的 processID 和 containerID,然后运行 ​​docker exec。但这或多或少是我最后的方式......而且我讨厌在没有部署的情况下管理 cronjobs。

那么这里最好的方法是什么?

祝你今天过得愉快,

巴斯蒂安

fun*_*ure 4

我编写了一个守护进程,用于观察容器并在容器上安排在其元数据中定义的作业。这最接近您的 1) 解决方案。例子:

version: '2'

services:
  wordpress:
    image: wordpress
  mysql:
    image: mariadb
    volumes:
      - ./database_dumps:/dumps
    labels:
      deck-chores.dump.command: sh -c "mysqldump --all-databases > /dumps/dump-$$(date -Idate)"
      deck-chores.dump.interval: daily
Run Code Online (Sandbox Code Playgroud)

“经典”、类似 cron 的配置也是可能的。

这是文档,这是图像存储库