Установите Debian Stretch с помощью PHP5.6 - PullRequest
0 голосов
/ 28 марта 2019

Мы используем laravel на основе php версии 5.6, несколько дней назад Debian удалил версию jessie (8), поэтому нам нужно обновить ее до 9, но проблема в том, что ее трудно использовать Debian 9 без php5.6 в качестве сценариев, таких как docker-php-ext-install, похоже, не работает там.я прикрепляю свой раздел установки в 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

1 Ответ

0 голосов
/ 30 марта 2019

docker-php-ext-install - команда, предоставленная официальными изображениями php.Вы найдете его только на тех изображениях или изображениях, основанных на них.

Официальные образы php для докера, обеспечивающие php 5.6, все еще существуют на док-станции:

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
...