我有以下简单的docker文件来添加来自alpine的php。
FROM php:7.2-fpm-alpine
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Install extensions
RUN docker-php-ext-install mbstring tokenizer mysqli pdo_mysql
COPY ./app /app
WORKDIR /app
RUN composer install
php -- --install-dir= composer install
它抱怨说 - The requested PHP extension ext-http * is missing from your system. Install or enable PHP's http extension.
我试着看是否可以用'docker-php-ext-install'来安装,但根据 此处 不包括该扩展。
也尝试添加 RUN apk add php-http
,我也得到了以下错误信息
PS:在我的本地linux机器上安装扩展后,使用以下方法在本地工作 sudo apt install php-http
首先,你可以添加一个 apk update
前添加包。然而 php_http
包在alpine中不存在,所以你需要编译pecl模块。
在编译过程中,使用 下面的问题 作为一个灵感,我发现把这个加到你的。Dockerfile
运作良好。
RUN apk add --update --virtual .build-deps autoconf g++ make zlib-dev curl-dev libidn2-dev libevent-dev icu-dev libidn-dev
RUN docker-php-ext-install mbstring tokenizer mysqli pdo_mysql json hash iconv
RUN pecl install raphf propro
RUN docker-php-ext-enable raphf propro
RUN pecl install pecl_http
RUN echo -e "extension=raphf.so\nextension=propro.so\nextension=iconv.so\nextension=http.so" > /usr/local/etc/php/conf.d/docker-php-ext-http.ini
RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-raphf.ini
RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-propro.ini
RUN rm -rf /tmp/*