在docker容器中安装imagemagick

时间:2016-04-11 18:04:35

标签: node.js ubuntu docker imagemagick wercker

我尝试在我的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容器内工作的东西吗?

3 个答案:

答案 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