0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

den(warden)+Magento2のcronジョブを設定する方法

Last updated at Posted at 2023-07-11

はじめに

Magento2では、cronジョブを実行するためのコマンドとして bin/magento cron:run が用意されています。
また、bin/magento cron:install を使用して、cron:runを毎分実行するcronジョブを簡単に設定することができます。

Docker環境で作業している場合、イメージにcrontabの設定が含まれていないと、コンテナを起動するたびに cron:install を手動で実行する必要があります。(denでも同様です。)
これは手間ですので、crontabファイルをバインドマウントして、コンテナ起動時に自動的にcrontabが生成されるようにする方法があります。

以下に、denで環境構築したMagento2の場合の手順を示します。

設定手順

1.den環境の設定を上書きするために、.warden/warden-env.yml ファイルを作成します。

# .warden/warden-env.yml

services:
  php-fpm:
    volumes:
      - ./.warden/crontab:/etc/crontabs/www-data

2.crontabファイルを作成します。

# .warden/crontab

* * * * * /usr/local/bin/php /var/www/html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/var/log/magento.cron.log

3.crontabファイルの所有者がrootでないと実行されないため、ホスト側で設定しておきます。

sudo chown root .warden/crontab

上記の手順に従って、den env upコマンドを使用してコンテナを起動すると、毎分cron:runが自動的に実行されるようになります。

おわりに

以上がden(warden)+Magento2のcronジョブを設定する方法です。
少しでも手間を減らして、快適な開発環境を目指しましょう!


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?