[Laravel][Job/Queue] Imagickが読み込まれない。

実現したいこと

前提

Laravelを使ってシステムを作っています。

PDFをjpgに変換するコードを書いていたのですが、
処理時間が長くなる為にJobとQueueを使って非同期処理を行おうと思いました。

以下が実際のJobのコードです。

<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Imagick; class CreateOCRRecognitionResultJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. */ public function __construct() { } /** * Execute the job. */ public function handle(): void { $imagick = new Imagick(); } }

use Imagick;としていますが、Jobを実行すると以下のようなエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Class "Imagick" not found {"exception":"[object] (Error(code: 0): Class \"Imagick\" not found at ...

試したこと

  • Mac側にもImagiMagickをインストールしても同じでした。
  • intervention/imageをインストールして、new Image()として結果は同じでした。

Jobの中では、importができないのでしょうか?

補足情報(FW/ツールのバージョンなど)

MacのDockerDesktopで以下のリポジトリを使い、Laravelを動かしています。
https://github.com/ucan-lab/docker-laravel

  • 使用PC:MacBook Air M2 2022
  • OSバージョン:macOS Ventura 13.5.1
  • Docker Desktop:4.23.0
  • フレームワーク:Laravel v10.10
  • PHPバージョン:8.2

コメントを投稿

0 コメント