猿问

将 Dockerfile 从 php:7.2-fpm 更新到 php:7.3-fpm 时出错

因为我想要 PHP 7.3 功能,所以我试图将项目从 PHP 7.2 更新到 PHP 7.3。在 docker-compose.yml 我有:


php:

    build: ./docker/php

    volumes:

        - .:/var/www/html

    links:

        - mysql:mysql

    depends_on:

        - mysql

    networks:

      - pimcorenet

我的 Dockerfile 是这样的:


FROM php:7.2-fpm


# install git

RUN apt-get update && \

        apt-get install -y --no-install-recommends git


#install some base extensions

RUN apt-get install -y \

        zlib1g-dev \

        zip \

        libpng-dev \

        exiftool \

        libfreetype6-dev \

        libjpeg62-turbo-dev \

        libmcrypt-dev \

        libicu-dev \

        libpq-dev \

        libxpm-dev \

        libvpx-dev \

        mariadb-client \

        libxml2-dev


RUN docker-php-ext-install -j$(nproc) \

        zip \

        exif \

        bcmath \

        intl \

        pcntl \

        mysqli \

        pdo \

        gd \

        pdo_mysql \

        pdo_pgsql \

        mbstring \

        soap \

        opcache \

        iconv


# Install Imagick

RUN apt-get update && apt-get install -y \

    libmagickwand-dev --no-install-recommends \

    && pecl install imagick \

    && docker-php-ext-enable imagick


# Install Composer

RUN echo "Install Composer"

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN composer --version

这到底是什么问题?是不是因为某些必需的 PHP 扩展尚未可用于 PHP 7.3 或已被替换?我该如何解决?刚换FROM php:7.2-fpmFROM php:7.3-fpm


达令说
浏览 253回答 1
1回答

噜噜哒

您无法理解容器。正因为如此,你采取了错误的方法。您不应该尝试将 php 7.2 到容器“升级”到 7.3。您应该首先创建一个基于 7.3 的新容器映像。顺便说一句,我建议将其设为现有 7.2 容器的一个新的、独立的服务,即一个新的 Dockerfile,而不是仅仅更改现有的容器/Dockerfile。这将允许您同时测试两个版本,而不是“信仰的飞跃”转换。此外,我建议直接构建 Debian 或 Ubuntu 映像,而不是通过“官方”Docker 映像。它们只是在由 Docker 制作的意义上是官方的,但在我看来它们并没有得到很好的支持。这是我目前使用的 dockerfile:https : //github.com/Danack/example/blob/master/docker/php_fpm/Dockerfile 将7.2 切换到 7.3 应该“正常工作”。
随时随地看视频慕课网APP
我要回答