web-dev-qa-db-ja.com

Dockerコンテナーへのimagemagickのインストール

Ubuntu 14.04サーバーでImageMagickを使用して、s3にアップロードする前に画像のサイズを変更しようとしています。 Werckerによって作成されているDockerコンテナー内ですべてを実行しています。問題はすでにサーバーにインストールしていて、DockerコンテナーのWerckerビルドにインストールしているにもかかわらず、EasyImage(サイズ変更を処理するnodejsライブラリー)が言っていることです

 ImageMagick Not Found
 EasyImage requires ImageMagick to work. Install it from http://www.imagemagick.org/script/binary-release.php.

これは、Werckerファイルにimagemagickをインストールするためのコマンドです

Sudo apt-get update -y && Sudo apt-get install -y imagemagick php5-imagick

私も使用しました

Sudo apt-get update -y && Sudo apt-get install -y imagemagick

、どちらも動作しないようです。 Dockerコンテナー内でImageMagickを動作させるために何か不足していますか?

15
Thomas Horner

dockerコンテナのimagemagickにも問題がありました。私はdocker configの一部を共有しています。何が問題なのかをdockerコンテナーでテストすると、失われたフォントに関するimagemagickからのエラーが表示されます。 linux-Alpineやsmth elseなどの軽量バージョンのsmthイメージを使用する場合、イメージにローカルマシンやVMなどの重要なツールを含めることはできません。もちろん、サーバー上のVMではなく、Dockerコンテナーにインストールする必要があります。

Dockerへのimagemagicのインストールは非常に簡単です:apk --update add imagemagick

私のドッカーファイルの一部。私はいくつかの重要なフォントをインストールしています。そして、それでも別の問題を解決できます。Dockerでimagemagickを使用しようとするとこのエラーが発生するためです。

ストリームは空のバッファを生成します

# the first thing we specify in a Dockerfile is the base image
FROM keymetrics/pm2:latest-Alpine

RUN yarn global add pm2@latest

# Install image preview generator tools
RUN apk add --no-cache file
RUN apk --update add imagemagick

# Install fonts
RUN apk --no-cache add msttcorefonts-installer fontconfig && \
 update-ms-fonts && \
 fc-cache -f

PHPでimagickを有効にするには、peclと拡張機能を使用してimagickをインストールする必要があります。次のコマンドでうまくいきました。

RUN apt-get update && apt-get install -y \
    libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick
1
Rakesh Sadaka