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

May 8, 2018,
tags: docker php imagick


このエントリーをはてなブックマークに追加

久しぶりのブログ更新です。こんばんわ。
phpの環境を構築する際に、alpine linuxのdocker imageを使っていますが、どうやってimagckを入れていいのかわからなかったのでそのメモです。

前提条件

  • imageはphp:7.2-alpineを使用している。
  • Docker for Mac上で試している

対応方法

Imagckをインストールするにはpecldocker-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

comments powered by Disqus