Rancher桌面、docker文件外壳命令在Mac M1芯片上不起作用

yiytaume  于 2022-10-23  发布在  Docker
关注(0)|答案(3)|浏览(181)

您好,以下是我的docker文件命令

ARG debianVersion=10.2
FROM debian:${debianVersion}
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
ARG AGENT_WORKDIR=/home/${user}/agent
USER root
RUN apt-get update
RUN groupadd -g ${gid} ${group}
RUN useradd -c "Jenkins user" -d /home/${user} -u ${uid} -g ${gid} -m ${user}

我正在使用Mac M1芯片上的Rancher台式机。
在执行以下命令时,出现错误

docker build -t test --platform linux/x86_64 .

错误消息如下

[Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
---> Running in 7778b2303192
-c: 0: Can't open apt-get update
The command '/bin/sh -c apt-get update' returned a non-zero code: 127

发现所有的外壳命令都不工作,得到一个非零代码:127如何修复这个问题?
使用Rancher版本1.5.0使用容器运行时dockerd(Moby)使用Kubernetes版本v1.21.14

mpgws1up

mpgws1up1#

降级至Rancher Desktop 1.4.1。
这是可行的,但如果降级不是选项,则Rancher Desktop Issues站点上有针对similar problems的解决方案,如下所示:QEMU解决方案
作为临时解决办法,作为VM中的根用户:

Create /etc/conf.d/qemu-binfmt, with contents binfmt_flags="POCF"
Run rc-update --update
Run rc-service qemu-binfmt restart
jhdbpxl9

jhdbpxl92#

文档文件:

…
FROM --platform=linux/arm64 debian:${debianVersion}
…

构建命令:

docker build -t test --platform linux/arm64 .
rxztt3cl

rxztt3cl3#

据我所知,dockerd运行时只能使用Docker Desktopm1 chip Mac上模拟其他平台类型(在上面的例子中是--platform=linux/amd64)。
尝试使用Rancher Desktop附带的内置nerdctl

nerdctl build -t test --platform linux/amd64 .
nerdctl build -t test --platform linux/x86_64 .

注:我发现,即使使用模拟,一些--platform linux/x86_64(Linux/AMD64)镜像仍然无法构建,最近使用官方selenium设置时遇到了这种情况,但wso2mailcatcher镜像没有问题

相关问题