Установите debian stretch с помощью php5.6

#php #dockerfile #debian-stretch

#php #dockerfile #debian-stretch

Вопрос:

Мы используем 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 
amp;amp; apt-get -y install 
    apt-transport-https apt-utils 
    lsb-release 
    ca-certificates 
    wget 
    mcrypt 
    libmcrypt-dev 
    git-core 
    unzip 
amp;amp; wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg 
amp;amp; echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list 
amp;amp; apt-get update 
amp;amp; apt-get -y install gnupg2 php5.6-cli php5.6-fpm 
amp;amp; apt-get update 
amp;amp; docker-php-ext-install 
    mbstring 
    pdo_mysql 
    mcrypt bcmath
amp;amp; update-alternatives --install /usr/bin/php php /usr/bin/php5.6 90 
amp;amp; update-alternatives --set php /usr/bin/php5.6
  

И это конец вызова build :

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

Комментарии:

1. Laravel поддерживает PHP 5.6? Сколько лет версии yoru Laravel?

2. Команды docker-php-… доступны только на изображениях php, это чистый образ debian, из которого получен образ docker

3. версия laravel 5.1.0, что касается чистого образа debian, я знаю, что если есть способ установить php5.6 в debian9 из другого образа, это было бы здорово. я просто взял пример, о котором прочитал здесь, и некоторые другие ссылки. но от всех них я получаю одну и ту же проблему с docker-php-ext..

4. php 5.6 не поддерживается, рассмотрите более новую версию

5. На данный момент это не вариант, у нас есть около 5 проектов, использующих php 5.6, и многие функции устареют, если мы перейдем на php7. вот почему мне нужен способ установить debian 9 с помощью php5.6

Ответ №1:

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

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

 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 
    amp;amp; apt-get -y install 
        libmcrypt-dev 
        mcrypt 
    amp;amp; docker-php-ext-install 
        bcmath 
        mbstring 
        mcrypt 
        pdo_mysql