我正在使用docker for symfony应用程序,我需要每分钟运行一个cron作业。所以基本上我有一个命令 my:command ,我通常这样运行:app/console my:command
我尝试了几个变种,但都没有成功。所以我的问题是如何运行cron工作?
以下是我的一些尝试:
首先:
* * * * * cd /usr/lib/myProject && app/console my:command >> /usr/lib/myProject/app/logs/log1.log
第二:
* * * * * /usr/lib/myProject/app/console my:command >> /usr/lib/myProject/app/logs/log1.log
答案 0 :(得分:1)
是你的码头工作者或外面的cronjob吗?如果它在你的外面应该检查已经安装了php。您可以运行命令whereis php
或which php
来了解php二进制文件的绝对路径。
然后放置app / console命令的路径。
如果您的cronjob位于docker容器内,则必须检查cron守护程序是否应作为进程运行。使用docker ps
或进入容器并执行ps awwx
。如果crond尚未运行,我建议你看看supervisord。使用此软件,您可以在一个docker容器中运行多个进程。
至少可以在外面配置cronjob,但是在容器内部执行命令。为此,您应该在crontab中预备docker exec
命令。
希望它有所帮助。
干杯, 罗宾