1

上周到今天,当我重建图像时,我在 alpine 上顺利运行 php7,但现在没有任何效果。我得到错误:

/ # apk add php7
ERROR: unsatisfiable constraints:
  php7 (missing):
    required by: world[php7]

对于我尝试安装并且以前有效的每个包,扩展。这是我用来设置 php7 的 RUN 命令:

RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
    apk update && \
    apk upgrade && \
    apk add --update \
        php7-mcrypt \
        php7-soap \
        php7-openssl \
        php7-gmp \
        php7-pdo_odbc \
        php7-json \
        php7-dom \
        php7-pdo \
        php7-zip \
        php7-mysqli \
        php7-sqlite3 \
        php7-pdo_pgsql \
        php7-bcmath \
        php7-gd \
        php7-odbc \
        php7-pdo_mysql \
        php7-pdo_sqlite \
        php7-gettext \
        php7-xmlreader \
        php7-xmlrpc \
        php7-bz2 \
        php7-iconv \
        php7-pdo_dblib \
        php7-curl \
        php7-ctype \
        php7-fpm 

上周安装的所有上述扩展都完美无缺。我错过了什么?

证明包确实存在:https ://pkgs.alpinelinux.org/packages?name=php7-*&branch=&repo=&arch=&maintainer=

4

2 回答 2

6

包 php7 已从 testing 移至社区存储库,因此您必须替换http://dl-cdn.alpinelinux.org/alpine/edge/testinghttp://dl-cdn.alpinelinux.org/alpine/edge/community.

于 2016-08-31T08:09:14.197 回答
2

您应该使用 DockerHub 上的官方PHP 7 Alpine 映像

然后,根据镜像文档,使用docker-php-ext-installDockerfile 中的命令:

FROM php:7-fpm-alpine
RUN apk update \
  && apk add libmcrypt-dev \
  && docker-php-ext-install mcrypt mysqli pdo_mysql \
  && rm /var/cache/apk/*

这可能最初看起来有点奇怪,但它确实有效并且是官方支持的 Docker 方法。

我们提供了帮助脚本 docker-php-ext-configure、docker-php-ext-install 和 docker-php-ext-enable,以便更轻松地安装 PHP 扩展。

DockerHub - PHP

于 2016-08-30T04:15:07.580 回答