Docker php:fpm-alpine:如何安装yaml php扩展?

时间:2019-10-25 14:06:42

标签: php docker docker-compose yaml pecl

我正在尝试安装php yaml扩展名。

我的Dockerfile:

FROM php:fpm-alpine


# gd
RUN apk add --update --no-cache \
      freetype-dev \
      libjpeg-turbo-dev \
      libpng-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd


# imagick
RUN apk add --update --no-cache autoconf g++ imagemagick-dev libtool make pcre-dev \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && apk del autoconf g++ libtool make pcre-dev


# Yaml
RUN apk add --no-cache \
      yaml-dev
RUN pecl install yaml
# I've trying with yaml-2.0.4 too...
RUN docker-php-ext-enable yaml

# Copy php conf files
COPY php-fpm.conf /usr/local/etc/php-fpm.d/www-user.conf
COPY php.ini /usr/local/etc/php/conf.d/50-setting.ini

错误:

ERROR: Service 'php' failed to build: The command '/bin/sh -c pecl install yaml' returned a non-zero code: 1

为什么在2019年安装基本的PHP扩展程序如此复杂? 没有文档解释这一点很正常吗?

编辑:否,它与“ add yaml extension to php on using official Alpine Docker image”不同。我知道如何搜索,并且在发布问题之前就找到了这个答案,但是该解决方案对我不起作用(而且答案已经过时了……)。

编辑2:我发现了。因此,就像David Maze所说的那样,我必须使用yaml安装依赖项(当然不可能自动安装它们,2019年,大家好!)。所以现在我与yaml同时安装imagick了:

FROM php:fpm-alpine


# gd
RUN apk add --update --no-cache \
      freetype-dev \
      libjpeg-turbo-dev \
      libpng-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd


# imagick & yaml
RUN apk add --update --no-cache autoconf g++ imagemagick-dev libtool make pcre-dev yaml-dev \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && pecl install yaml \
    && docker-php-ext-enable yaml \
    && apk del autoconf g++ libtool make pcre-dev


# Copy php conf files
COPY php-fpm.conf /usr/local/etc/php-fpm.d/www-user.conf
COPY php.ini /usr/local/etc/php/conf.d/50-setting.ini

0 个答案:

没有答案