如何在Docker文件中添加ext-http?

问题描述 投票:0回答:1

我有以下简单的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,我也得到了以下错误信息 enter image description here

PS:在我的本地linux机器上安装扩展后,使用以下方法在本地工作 sudo apt install php-http

php linux docker docker-compose alpine
1个回答
1
投票

首先,你可以添加一个 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/*
© www.soinside.com 2019 - 2024. All rights reserved.