Dockerなphpの環境でimagickをinstallする

久しぶりのブログ更新です。こんばんわ。
phpの環境を構築する際に、alpine linuxのdocker imageを使っていますが、どうやってimagckを入れていいのかわからなかったのでそのメモです。
前提条件
- imageは
php:7.2-alpineを使用している。 - Docker for Mac上で試している
対応方法
Imagckをインストールするにはpeclとdocker-php-ext-enableを利用して、インストールします。
まずはpeclでimagckを入れます。
その後docker-php-ext-enable imagick を実行するだけです。かんたんですね。
docker-php-ext-enableが何をやっているか気になる方は以下を見ればいいかと。
php/docker-php-ext-enable at 1f00ae65371a92e9ad6c33e5992577df5c401df6 · docker-library/php · GitHub
僕はシェルスクリプトあまり書かないので、雰囲気でしかわかりませんが、なんとなくconf.dにiniファイルを用意しているのがわかりますね。
今のところiniファイルいじる予定もないので、とりあえずスルーしておきます。
実際のDockerfile
FROM php:7.2-alpine
RUN apk add --update openssh libpng-dev libjpeg-turbo-dev libxml2-dev autoconf g++ imagemagick-dev libtool make pcre-dev \
&& docker-php-ext-install pdo pdo_mysql soap \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& rm -rf /tmp/* /var/cache/apk/*
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer config -g repositories.packagist composer https://packagist.jp \
&& composer self-update \
&& composer global require "hirak/prestissimo"
WORKDIR /var/www/symfony
参考
Unable to install imagick · Issue #105 · docker-library/php · GitHub