Featured image of post Dockerなphpの環境でimagickをinstallする

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

Twitter ツイート Hatena Bookmark ブックマーク

久しぶりのブログ更新です。こんばんわ。
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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
Built with Hugo
テーマ StackJimmy によって設計されています。