docker-slim で 任意のバージョンの ImageMagickを入れる方法

レガシーなシステムをDocker化するときにたまによくやるのでメモ

多分、Aplineでもおんなじだと思う

方法

コードからmakeする

ARG IMAGE_MAGICK_VERSION=${好きなパージョン}
RUN wget --quiet https://imagemagick.org/download/releases/ImageMagick-$IMAGE_MAGICK_VERSION.tar.xz && \
    tar Jxfv ImageMagick-$IMAGE_MAGICK_VERSION.tar.xz && \
    cd ImageMagick-$IMAGE_MAGICK_VERSION/ && \
    export PKG_CONFIG_PATH="/usr/local/libpng/lib/pkgconfig/:/usr/local/zlib/lib/pkgconfig/" && \
    ./configure --prefix=/usr/local/magick --with-png && \
    make && \
    make install && \
    cd .. && \
    rm -f ImageMagick-$IMAGE_MAGICK_VERSION.tar.xz && \
    rm -rf ImageMagick-$IMAGE_MAGICK_VERSION
ENV PATH /usr/local/magick/bin:$PATH

ポイント

  • configure --prefix でmakeされたバイナリの格納先を指定する
  • make install の後に、アーカイブとディレクトリを削除してimageサイズをへらす
  • PATHは ENV で設定する。 RUN export で設定しても、その RUN の中でしか有効ではない