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

时间:2019-09-03 13:40:08

标签: php docker docker-compose updates php-7.3

因为我想要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

我遇到以下错误:

  

E:获取失败   http://cdn-fastly.deb.debian.org/debian/pool/main/r/readline/readline-common_7.0-5_all.deb   无法解析“ cdn-fastly.deb.debian.org” E:无法获取   http://cdn-fastly.deb.debian.org/debian/pool/main/j/jquery/libjs-jquery_3.3.1~dfsg-3_all.deb   无法解析“ cdn-fastly.deb.debian.org” E:无法获取   http://cdn-fastly.deb.debian.org/debian/pool/main/f/freetype/freetype2-doc_2.9.1-3_all.deb   无法解析“ cdn-fastly.deb.debian.org” E:无法获取   http://cdn-fastly.deb.debian.org/debian/pool/main/i/icu/icu-devtools_63.1-6_amd64.deb   无法解析“ cdn-fastly.deb.debian.org” E:无法获取   http://cdn-fastly.deb.debian.org/debian/pool/main/j/javascript-common/javascript-common_11_all.deb   无法解决“ cdn-fastly.deb.debian.org” .....更多错误

     

错误:服务'php'构建失败:命令'/ bin / sh -c apt-get   安装-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'返回了一个   非零代码:100

确切的问题是什么?是因为某些必需的PHP扩展名尚不适用于PHP 7.3还是已被替换?我该如何解决?刚刚将FROM php:7.2-fpm更改为FROM php:7.3-fpm

1 个答案:

答案 0 :(得分:1)

您无法grok个容器。因此,您采用了错误的方法。

您不应该尝试将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应该可以正常工作。