在更新我的码头后,我很难建立我的项目。
我以前工作的DockerFile:
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update \
&& apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \
&& mkdir -p ~/.gnupg \
&& chmod 600 ~/.gnupg \
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
&& apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \
&& apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \
&& echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \
&& apt-get update \
&& apt-get install -y php7.4-cli php7.4-dev \
php7.4-pgsql php7.4-sqlite3 php7.4-gd \
php7.4-curl php7.4-memcached \
php7.4-imap php7.4-mysql php7.4-mbstring \
php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \
php7.4-intl php7.4-readline php7.4-pcov \
php7.4-msgpack php7.4-igbinary php7.4-ldap \
php7.4-redis \
&& php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
&& curl -sL https://deb.nodesource.com/setup_15.x | bash - \
&& apt-get install -y nodejs \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install -y yarn \
&& apt-get install -y mysql-client \
&& apt-get install -y postgresql-client \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
与平台:platform: linux/x86_64
在我的Docker-Compose
。
然而,在更新了Docker之后,它现在就不起作用了,我不知道为什么。
现在返回以下的响应:
在此操作之后,将使用116 MB的额外磁盘空间。Get:1 https://deb.nodesource.com/node_15.x焦/主arm64 nodejs arm64 15.14.0-Deb-1 nodesource1 24.8MB debconf:延迟包配置,因为apt-utils在2s (12.5MB/s)中没有安装24.8 MB,选择以前未选择的package。(读取数据库.当前安装的21576个文件和目录。)准备拆包./nodejs_15.14.0-deb-1 nodesource1_arm64.deb.开封节deb(15.14.0-Deb-1 nodesource1)建立nodejs (15.14.0-Deb-1 nodesource1)处理man的触发器(2.9.1-1) .警告:不应该解析apt键输出(stdout不是终端) gpg:没有找到有效的OpenPGP数据。发生分段错误1错误:*状态:命令'/bin/sh -c apt-get update & apt-get -y gnupg u curl ca--y解压缩git主管sqlite3 libcap2-bin libpng-dev python2 & mkdir -p ~/.gnupg && chmod 600 ~/.gnupg & echo - >> ~/.gnupg /dimmnngr.conf& apt-key adv -homedir~/.gnupg-keyserver p://keyserver.untu.com:80-recv E5267A6C && apt-key adv -homedir~/..gnupg keyserver hkp://keyserver.ubuntu.com:80 -recv- C300EE8C & echo >/etc/apt/Sourcees.list.d/ppa_ondrej_php.list&apt-获取更新
&& apt-获取安装-y php7.4-cli php7.4-dev php7.4-pgsql php7.4-sqlite3 php7.4-gd php7.4-curl php7.4-memcached
php7.4-imap php7.4-mysql php7.4-mbstring php7.4-xml php7.4-zip php7.4
php7.4-redis && php -r "readfile('http://getcomposer.org/installer');-client && apt-获取安装-y postgresql-client && apt-获取-y自动删除
&& apt&get& -rf /var/lib/apt/list/* /tmp/* /var/tmp/*‘返回一个非零代码: 2,代码:2
尝试了一些步骤(指定Ubuntu版本以防止出现某些不兼容):
FROM --platform=linux/arm64/v8 ubuntu:18.04
错误1:无法定位包python2
FROM --platform=linux/arm64/v8 ubuntu:21.04
错误1:下列软件包有未满足的依赖关系: libxml2 :intl: libicu66 (>= 66.1-1~),但它不是可安装的php7.4-intl : libicu66 (>= 66.1-1~),但不能安装
错误2:无法纠正问题,您已保存了损坏的包。发生1错误:状态:命令'/bin/sh -c .返回一个非零代码: 100,代码: 100
FROM --platform=linux/arm64/v8 ubuntu:22.04
错误1:下列软件包有未满足的依赖关系: libxml2 :intl: libicu66 (>= 66.1-1~),但它不是可安装的php7.4-intl : libicu66 (>= 66.1-1~),但不能安装
错误2:无法纠正问题,您已保存了损坏的包。发生1错误:状态:命令'/bin/sh -c .返回一个非零代码: 100,代码: 100
码头工人-组成:
我已经将我的平台指定为platform: linux/amd64
,而不是文档中的platform: linux/x86_64
。尝试使用linux/arm64
,但这也不起作用(所产生的错误相同)。
发布于 2021-11-20 13:47:51
修好了,我昨天晚上是个白痴。
解决方案A:(在我的例子中):降级回Desktop版本4.0.0。我使用的是英特尔图片,所以我必须指定x86_64
。
一个更好的解决方案是改变我所有的映像是基于Arm64和英特尔的,以及它与Ubuntu + Mysql兼容(目前,docker建议使用MariaDB )。
然而-考虑到Docker仍然相对不稳定,并且可以在任何时候停止您的构建过程,我建议任何人更新Docker为M1小心!
https://stackoverflow.com/questions/70041787
复制相似问题