Установка imagemagick в контейнер для докеров

Я пытаюсь использовать ImageMagick на своем сервере Ubuntu 14.04 для изменения размера изображения перед загрузкой на s3. Я запускаю все внутри контейнера докера, создаваемого Wercker. Проблема в том, что я уже установил ее на сервере и установил ее в сборке 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 работать внутри контейнера докеров?

Ответ 1

Я также столкнулся с проблемой с imagemagick в контейнере Docker. Я делюсь частью моей конфигурации докера. Когда я проверил в контейнере Docker, что идет не так, я вижу ошибку от imagemagick о потерянных шрифтах. Если вы используете облегченную версию чего-либо, например linux-alpine или что-то еще, ваши образы не могут иметь никаких важных инструментов, таких как ваш локальный компьютер или виртуальная машина. Конечно, вам нужно установить его в Docker-контейнере, а не в вашем VM на сервере

Установить apk --update add imagemagick очень просто: apk --update add imagemagick

Часть моего файла докера. Я устанавливаю какой-то важный шрифт, imagemagic отлично с ним работает. И все же это может решить еще одну проблему, потому что у меня есть эта ошибка при попытке использовать imagemagick в докере

Поток выдает пустой буфер

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

RUN yarn global add [email protected]

# 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

Ответ 2

Вам нужно установить imagick, используя pecl и расширение, чтобы включить imagick в php. Следующая команда работала для меня:

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