在docker容器中安装imagemagick

Tho*_*ner 13 ubuntu imagemagick node.js docker 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.
Run Code Online (Sandbox Code Playgroud)

这是我在Wercker文件中安装imagemagick的命令

sudo apt-get update -y && sudo apt-get install -y imagemagick php5-imagick
Run Code Online (Sandbox Code Playgroud)

我也用过

sudo apt-get update -y && sudo apt-get install -y imagemagick
Run Code Online (Sandbox Code Playgroud)

,但似乎都不起作用.我错过了让ImageMagick在docker容器内工作的东西吗?

小智 8

您需要使用 pecl 和扩展安装 imagick 才能在 php 中启用 imagick。以下命令对我有用:

RUN apt-get update && apt-get install -y \
    imagemagick libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick
Run Code Online (Sandbox Code Playgroud)


Вик*_*кий 5

我也遇到了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
Run Code Online (Sandbox Code Playgroud)