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を動作させるために何か不足していますか?
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