PHP Fatal error: Uncaught Error: Call to undefined function ImageCreateFromJPEG() のエラーで DockerにGDを入れる

立ち上げたDocker環境で以下のエラーが出たので対応。

PHP
PHP Fatal error: Uncaught Error: Call to undefined function ImageCreateFromJPEG()

PHPのGDライブラリが入っていない模様。

Dockerfile を見る。

Dockerfile
#RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/

なんかコメントアウトされているので外す。

Dockefileを更新したのでdocker-compose up --buildで再読み込み。

エラー。

ERROR [app 4/8] RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
failed to solve: process "/bin/sh -c docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/" did not complete successfully: exit code: 1

PHP 7.4以降でGD拡張機能の設定オプションが変更されており--with-freetype-dir および --with-jpeg-dir オプションがサポートされなくなっているらしい。

以下に書き換える。

Dockerfile
RUN docker-php-ext-configure gd --with-freetype --with-jpeg

以下の依存パッケージも全部あるか確認しておく。

Dockerfile
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev

足りないパッケージを追加して、docker-compose up --buildで再読み込み。 → できた。

今回はサイトの改修を請けるに当たりリポジトリに含まれていた開発環境を手元で使う際に発生。前任はテストサーバーを直接編集して開発していたとのこと。

サポートが必要ですか?

ご質問・お見積り依頼はお気軽にどうぞ

お問い合わせはこちら
シェア
野良人 代表
新免祥太
1988年岡山生まれ。外食企業のWEB・EC担当を経験したのち、2013年12月より「野良人(のらんど)」の屋号で独立しWEBデザイン・プログラミングなどWEBサイト制作の工程全般を請け負っています。お気軽にご相談ください。
広告
前の記事(2024/09/06)
無料で印刷できるキャラクター等公式ぬりえページリンク集
記事一覧