2
1

More than 1 year has passed since last update.

Dockerのホスト側Cronを実行してコンテナのLaravelバッチを動かす

Last updated at Posted at 2021-12-17

環境

hostはLinux
Dockerコンテナ起動中
コンテナはPHP
PHPフレームワークはLaravel

前提

PHPコンテナで、Laravelのバッチが動いていることとします。

ホスト側でDockerコマンドのバッチを実行する

下記コマンド①②のどちらかをホストから実行できるか確認してください。

  • ホストで実行

docker-compose exec 【サービス名】 php artisan command:【バッチ】

docker exec 【コンテナ名】 php artisan command:【バッチ】

Cron設定

  • 実行が確認できれば、ホストのcrontabを、拡張子のないファイル名でtest_cronコピーする
$ sudo cp /etc/crontab /etc/cron.d/test_cron
  • ホストで実行

5分毎に実行する

*/5  *  *  *  * ec2-user  cd /home/ec2-user/【Laraveプロジェクトディレクトリ】 && docker exec 【コンテナ名】 php artisan command:【バッチ】 1> /dev/null

cron再起動

$ sudo systemctl restart crond.service

cronステータス

$ sudo systemctl status crond.service

以上

2
1
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
2
1