Пытаюсь строить из официального php:7.1-fpm-alpine
изображение, используя следующую выдержку из моего Dockerfile:
FROM php:7.1-fpm-alpine
RUN set -ex \
apk add --no-cache --virtual .build-deps \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
\
&& docker-php-ext-configure gd \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--with-jpeg-dir=/usr \
&& docker-php-ext-install gd \
&& apk del .build-deps
При попытке построить это с docker build
ГД терпит неудачу во время ./configure
со следующей ошибкой:
configure: error: jpeglib.h not found
Я могу подтвердить, что jpeglib.h
существует и именно там Я думаю, что это должно быть (действительно, именно там, где это находится в вариантах Debian):
$ docker run -it --rm php:7.1-fpm-alpine /bin/sh
>$ apk add --no-cache libjpeg-turbo-dev \
&& find /usr -type f -name 'jpeglib.h'
...
/usr/include/jpeglib.h
Но если я возьму именно так та же команда, используемая в файле Docker и запускающая его в интерактивном режиме внутри контейнера, она создает безупречно. Нет ошибок
Это ошибка, или я что-то упустил?
Проблема была в ослепительно простой синтаксической ошибке; apk
позвонить по set
команда должна предшествовать &&
иначе переводчик лечит весь apk
вызвать в качестве набора аргументов set
, В этом случае пакеты не добавляются, поэтому jpeglib.h
не существовало
Когда я набирал команду в оболочке, я использовал правильный синтаксис, поэтому она прошла без ошибок.
Других решений пока нет …