在 docker 上运行的 symfony 中的 Cronjob

2 cron symfony docker

我正在尝试通过 cron 运行一个 symfony 命令,但它现在从未执行过。该应用程序正在 docker 中运行,如果我需要指定角色或其他内容,我找不到信息。其他标准 linux 命令执行成功,但看起来 cron 不想启动应用程序/控制台。这是我的 cronjob:

*  * * * * /usr/local/bin/php /usr/lib/myApp/app/console myCommand --env=prod >> /usr/lib/myApp/testLog.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

有没有人对如何使用 cron 在 docker 中运行 symfony 命令有任何建议?

Mar*_*tin 5

Docker 的理念是每个容器有一个进程。这意味着,您通常没有init系统,因此容器内没有运行的服务,例如dbuscron

有很多方法可以使用这样的 init-system/background 服务创建您自己的 Docker 镜像。基于 Alpine 的图像经常使用S6

另一种解决方案是在您的主机上使用 cron-service 并将命令重写为类似 docker exec <container_name> /usr/local/bin/php ...