使用 php5.6 安装 debian stretch

Install debian stretch with php5.6

我们使用的是laravel基于php5.6版本,几天前Debian删除了jessie版本(8)所以我们需要升级到9,但问题是它很难用没有 php5.6 作为脚本的 Debian 9 docker-php-分机安装 似乎在那里不起作用。我在 docker 文件中附加了我的安装部分。如果有解决方案,将不胜感激

我尝试安装 pdo_mysql 而没有 docker-php-ext-install 但它失败了,找不到那个..

FROM debian:9.0
RUN apt-get update \
&& apt-get -y install \
    apt-transport-https apt-utils \
    lsb-release \
    ca-certificates \
    wget \
    mcrypt \
    libmcrypt-dev \
    git-core \
    unzip \
&& wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
&& echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \
&& apt-get update \
&& apt-get -y install gnupg2 php5.6-cli php5.6-fpm \
&& apt-get update \
&& docker-php-ext-install \
    mbstring \
    pdo_mysql \
    mcrypt bcmath\
&& update-alternatives --install /usr/bin/php php /usr/bin/php5.6 90 \
&& update-alternatives --set php /usr/bin/php5.6

构建调用到此结束:

Reading package lists...
/bin/sh: 1: docker-php-ext-install: not found

docker-php-ext-install是官方php镜像提供的命令。你只会在那些图像或基于这些图像的图像上找到它。

官方 docker php 图片提供 php 5.6 仍然存在于 docker 中心:

wget -qO- https://registry.hub.docker.com/v1/repositories/php/tags | jq '.[].name' | grep -P '^"5\.6(?!\.)'
"5.6"
"5.6-alpine"
"5.6-alpine3.4"
"5.6-alpine3.7"
"5.6-alpine3.8"
"5.6-apache"
"5.6-apache-jessie"
"5.6-apache-stretch"
"5.6-cli"
"5.6-cli-alpine"
"5.6-cli-alpine3.4"
"5.6-cli-alpine3.7"
"5.6-cli-alpine3.8"
"5.6-cli-jessie"
"5.6-cli-stretch"
"5.6-fpm"
"5.6-fpm-alpine"
"5.6-fpm-alpine3.4"
"5.6-fpm-alpine3.7"
"5.6-fpm-alpine3.8"
"5.6-fpm-jessie"
"5.6-fpm-stretch"
"5.6-jessie"
"5.6-stretch"
"5.6-zts"
"5.6-zts-alpine"
"5.6-zts-alpine3.4"
"5.6-zts-alpine3.7"
"5.6-zts-alpine3.8"
"5.6-zts-jessie"
"5.6-zts-stretch"

此外,这些镜像构建于 debian 9 之上:

docker run --rm php:5.6 cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

并提供docker-php-ext-install命令:

docker run --rm php:5.6 which docker-php-ext-install
/usr/local/bin/docker-php-ext-install

我建议您使用其中一个官方映像作为 Dockerfile 的基础。

FROM php:5.6-fpm
RUN apt-get update \
    && apt-get -y install \
        libmcrypt-dev \
        mcrypt \
    && docker-php-ext-install \
        bcmath \
        mbstring \
        mcrypt \
        pdo_mysql