因为我想要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
。
答案 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应该可以正常工作。