【问题标题】:Docker and php extensionDocker 和 php 扩展
【发布时间】:2020-12-14 22:38:59
【问题描述】:

我尝试在我的容器(debian Buster)中安装 php 扩展,但我有很多问题:

E: Package 'php7.3-XXXX' has no installation candidate

FROM php:7.3-apache

RUN apt-get upgrade -y && apt-get update -y
RUN apt-get install -y \
       git \
       vim \
       curl \
       bash \
       software-properties-common \
       lsb-release \
       gnupg

RUN apt-get install -y \
        libzip-dev \
        zip \
  && docker-php-ext-install zip

RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee -a /etc/apt/sources.list.d/php.list \
    && curl https://packages.sury.org/php/apt.gpg | apt-key add - \
    && apt-get update -qq \
    && DEBIAN_FRONTEND=noninteractive apt install -y \
    php7.3-common \
    php7.3-cli \
    php7.3-mysql \
    php7.3-curl \
    php7.3-xml \
    php7.3-mbstring \
    php7.3-intl \
    php7.3-zip \
    php7.3-json \
    php7.3-gd

ENV COMPOSER_ALLOW_SUPERUSER=1
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www/html/

COPY ./ /var/www/html/

RUN chmod +rwx /var/www/html/prestashop.zip

CMD ["apachectl", "-D", "FOREGROUND"]

我尝试在没有扩展包的情况下安装。同样的问题。

我不明白为什么我不能安装 PHP 扩展。无论我使用什么 PHP 图像,我都会遇到同样的问题。

我一定错过了一件事。

有什么想法吗?

谢谢

【问题讨论】:

    标签: php docker dockerfile debian


    【解决方案1】:

    使用docker-php-ext-install 而不是apt install php7.3-XXX(您已经在使用它来安装zip 扩展程序`)。

    PHP Docker documentation 中有一个关于如何使用它的说明How to install more PHP extensions主题。

    所以你的 dockerfile 应该是这样的:

    #...
    RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee -a /etc/apt/sources.list.d/php.list \
        && curl https://packages.sury.org/php/apt.gpg | apt-key add - \
        && apt-get update -qq \
        && docker-php-ext-install mysqli \
        curl \
        xml \
        mbstring \
        intl \
        zip \
        json \
        gd
    #...
    

    请注意,我没有安装 common(无需安装),也没有安装 cli 库。如果您需要 cli 库,我建议您阅读本教程:How to install PHP extension into cli

    您的 Docker 似乎还有一些其他问题,包括 cURL (this topic might help) 和 https://packages.sury.org/php 签名,但这些主题超出了要求。

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2019-03-28
      • 2018-07-18
      相关资源
      最近更新 更多