Cara untuk kembali ke PHP versi 8.1: Docker phpdockerio/php:8.1-fpm build menggunakan PHP versi 8.2
P粉757640504
P粉757640504 2023-11-05 09:52:26
0
1
583

Saya sedang menjalankan projek saya pada bekas docker PHP-FPM (butiran fail konfigurasi di bawah). Apabila saya membina bekas dan cuba menjalankan Komposer, saya mendapat ralat melaporkan bahawa sambungan PHP tiada. Walau bagaimanapun, saya rasa fail binaan saya meliputi sambungan ini (lihatdocker/php-fpm/Dockerfiledi bawah).

Ternyata bekas itu dibina dengan php8.2 sebagai versi lalai. Saya telah dapat menukar symlink untuk menetapkan versi lalai kembali kepada php8.1 tetapi ini nampaknya bukan penyelesaian yang betul. Bolehkah sesiapa mencadangkan penyelesaian yang lebih baik?

Bagaimana saya tahu bekas sedang berjalan 8.2: Di dalam bekas saya berlariphp --versiondan mendapat:

root@fee8cc9ff790:/application# php --version PHP 8.2.0 (cli) (built: Dec 8 2022 13:56:08) (NTS)

Kemudianwhich phpmemberi saya:

root@fee8cc9ff790:/application# which php /usr/bin/php

Saya mengikuti pautan sym ke binari PHP yang dipautkan dalam/etc/alternatives:

phar -> /usr/bin/phar8.2 phar.phar -> /usr/bin/phar.phar8.2 php -> /usr/bin/php8.2 phpdbg -> /usr/bin/phpdbg8.2

Ini nampaknya tidak sesuai untuk saya. Saya dapat memautkannya semula kepada versi 8.1 mereka dan semuanya nampaknya berjalan lancar sekarang, tetapi apakah yang berlaku apabila saya membina semula bekas itu?

Butiran fail saya:

docker-compose.yml

############################################################################### # Generated on docker.io # ############################################################################### version: '3.9' services: mailhog: image: 'mailhog/mailhog:latest' redis: image: 'redis:alpine' mysql: image: 'mysql:8.0.27' working_dir: /application platform: linux/amd64 environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE= - MYSQL_USER= - MYSQL_PASSWORD= webserver: image: 'nginx:alpine' working_dir: /application volumes: - '.:/application' - './docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf' php-fpm: build: docker/php-fpm working_dir: /application/ volumes: - '.:/application' - './docker/php-fpm/php-ini-overrides.ini:/etc/php/8.1/fpm/conf.d/99-overrides.ini' - './docker/php-fpm/php-ini-overrides.ini:/etc/php/8.1/cli/conf.d/99-overrides.ini'

docker-compose.override.yml

############################################################################### # Generated on phpdocker.io # ############################################################################### version: '3.9' services: mailhog: ports: - '8026:8025' mysql: ports: - '33061:3306' webserver: ports: - '801:80'

docker/php-fpm/Dockerfile

FROM phpdockerio/php:8.1-fpm WORKDIR "/application" RUN apt-get update; apt-get -y --no-install-recommends install git php-xdebug php8.1-mysql php8.1-sqlite mysql-client php8.1-redis; apt-get clea n; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*


P粉757640504
P粉757640504

membalas semua (1)
P粉418854048

Ini ternyata disebabkan oleh sambungan yang saya muatkan. Dalam docker/php-fpm/Dockerfile saya memasang php-xdebug yang menyebabkan bekas memuatkan PHP8.2

Menentukan versi 8.1php8.1-xdebugmenyelesaikan masalah.

Terima kasih kepada luispabon kerana menjawab soalan saya di GitHub, dia fikir ia mesti menjadi isu dengan imej.https://github.com/phpdocker-io/base-images/issues/ 62

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!