LoginSignup
0
0

More than 1 year has passed since last update.

Macでローカルからdocker環境のLaravel タスクスケジューラを動かす

Posted at

環境

Mac M1
Laravel9
php8

やりたかったこと

Laravel タスクスケジューラで設定した時間間隔でスケジュールが実行されているかを確認したかった。

解決方法

crontabに登録をして、スケジューラを実行させる。

1.cronエントリーを追加

crontab -eをターミナルで叩くと、vim画面が出てくる

user_name ~ % crontab -e

2.何分おきにcronを実行させるかを登録する

 * * * * * cd project名までのフルパス &&
 /usr/local/bin/docker compose exec コンテナ名 php /var/www/project名/artisan schedule:run >> /dev/null 2>&1

上記はcd project名までのフルパスで作業ディレクトリに移動して、指定した時間でartisanコマンドを叩くというもの。
注意点としては、dockerコマンドとartisanコマンドを使うためにはフルパスで書かないと動かない、、、

ちなみに * * * * * で時間を指定できるようになっています。(デフォルトだと1分単位で実行される)

分 時 日 月 曜日 
*  *  *  *  * command

分(0-59)
時(0-23)
日(1-31)
月(1-12)
曜日(0-6) ※0は日曜日

3.crontab -lコマンドで登録されているcronを確認

crontab -lコマンドでさっき登録したものが表示されたら設定完了。

docker compose exec コンテナ名 php artisan schedule:work

補足

Laravel8以降だと以下のコマンドを打つだけで確認することができる。

docker compose exec コンテナ名 php artisan schedule:work
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0