環境
- docker
- php 7 多分5系でも可能
やりたいこと
公式のphp dockerイメージのPHPでImageMagickで画像処理を使いたい。
やり方
そのままでは無いので自分でImageMagickを追加する必要がある。がpeclでインストールしてdocker-php-ext-enable imagick
するだけなので割と簡単
Dockerfileから継承する形でImageMagickを追加していく。
FROM php:7.4-alpine RUN apk add --no-cache imagemagick \ && apk add --no-cache --virtual .phpize-deps imagemagick-dev build-base autoconf libpng-dev libjpeg-turbo-dev libxml2-dev \ && pecl install imagick \ && docker-php-ext-enable imagick \ && apk del .phpize-deps
imagemagickパッケージだけは実行時にも必要なので残しておく必要がある。
確認コード
正常にインストールできていれば以下のようなコードが動くはず
<?php $im = new Imagick('test.jpg'); $im->writeImage('test.png');
対応フォーマット確認
docker run --rm imagick_php php -r 'print_r(Imagick::queryFormats());'