Docker php: 7.1-fpm-alpine не может собрать GD

Пытаюсь строить из официального 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 и запускающая его в интерактивном режиме внутри контейнера, она создает безупречно. Нет ошибок

Это ошибка, или я что-то упустил?

3

Решение

Проблема была в ослепительно простой синтаксической ошибке; apk позвонить по set команда должна предшествовать &&иначе переводчик лечит весь apk вызвать в качестве набора аргументов set, В этом случае пакеты не добавляются, поэтому jpeglib.h не существовало

Когда я набирал команду в оболочке, я использовал правильный синтаксис, поэтому она прошла без ошибок.

2

Другие решения

Других решений пока нет …