我尝试在我的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
,但似乎都不起作用。我错过了让ImageMagick在docker容器内工作的东西吗?
答案 0 :(得分:3)
我也在docker容器中遇到了imagemagick的问题。我共享我的docker配置的一部分。当我在docker容器中进行测试时,出了什么问题,我从imagemagick看到有关字体丢失的错误。如果您使用轻量级的smth映像(例如linux-alpine或smth映像),则映像不能具有任何重要的工具,例如本地计算机或VM。当然,您需要将其安装在Docker容器中,而不是在服务器上的vm中安装
在docker中安装imagemagic非常简单:apk --update add imagemagick
我的docker文件的一部分。我安装了一些重要的字体,imagemagic很好用。但它可以解决另一个问题,因为尝试在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
答案 1 :(得分:0)
你需要使用pecl和扩展来安装imagick以在php中启用imagick。以下命令对我有用:
RUN apt-get update && apt-get install -y \
libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick
答案 2 :(得分:0)
对我来说,这段代码有效:
RUN set -ex \
&& apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS imagemagick-dev libtool \
&& export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \
&& pecl install imagick-3.4.3 \
&& docker-php-ext-enable imagick \
&& apk add --no-cache --virtual .imagick-runtime-deps imagemagick \
&& apk del .phpize-deps
它安装 imagick 槽 pecl install
然后启用 php ext。
我找到了解决方案 here。