2016-11-12 113 views
0

我正在使用docker for may symfony應用程序,我需要每分鐘運行一次cron作業。所以基本上我有一個命令我的:命令,我通常這樣運行:app/console my:command我嘗試了幾個變化,但都沒有成功。所以我的問題是如何運行cron作業? 下面是一些我的嘗試:在symfony中運行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

你是不是失蹤前 '應用程序/控制檯' 的 'PHP'?在symfony3中它應該是'bin/console'。 – Chrisissorry

+0

我正在使用symfony2,這就是爲什麼它是應用程序/控制檯。我試圖添加PHP,但仍然無法正常工作 – snaksa

回答

1

是您的cronjob在泊塢窗圖像或外部?如果它在你的外面,應該檢查php是否已經安裝。您可以運行命令whereis phpwhich php來了解php二進制文件的絕對路徑。 然後你把app/console命令的路徑。

如果您的cronjob位於您的docker容器內部,則必須檢查cron守護進程是否應作爲進程運行。使用docker ps或進入您的容器並執行ps awwx。如果crond還沒有運行,我建議你看看supervisord。使用此軟件,您可以在一個碼頭集裝箱中運行多個流程。

至少可以配置外部的cronjob,但在容器內執行命令。爲此,您應該在您的crontab中準備docker exec命令。

希望它有幫助。

乾杯, 羅賓

+0

謝謝你的回覆。我會盡快嘗試你的方法:)乾杯 – snaksa