首页 > 解决方案 > 使用 Docker 运行 cronjobs 时应该使用 docker exec 吗?

问题描述

我想php-fpm在一个容器和cron另一个容器中运行。我对我为cron.

目前,我只是复制了 php-fpm 的 Dockerfile 并稍微修改了它的末尾 - 安装了 cron 并添加了CMD ["cron", "-f"]

这可行,但不是很干,因为我在复制 php-fpm 的 Dockerfile 时重复了很多代码。如果我的某些依赖项发生了变化(例如,我需要安装一个新的 php 扩展),我必须在两个 Dockerfile 中进行,而不仅仅是一个。

最近我看到有人使用“docker exec from another container”的方法来解决这个问题。这意味着他们的cron容器是基于docker图像的,他们用来docker exec在另一个容器中运行命令。这是干的,但是,我经常听到人们说运行 docker-in-docker 出于某种原因不是很优雅,并且通常仅用于解决方法。

这里的最佳做法是什么?让 Dockerfiles 处于非 DRY 状态,还是使用 docker-in-docker 方法?

标签: phpdockercron

解决方案


推荐阅读