Docker 卡在 M1 上的 apt-get 更新 Mac (Apple Silicone)

Docker stuck on apt-get update on M1 Mac (Apple Silicone)

我有一个 docker 文件,它是从基本映像构建的 node:bullseye-slim

以下是基本的docker文件

FROM  --platform=linux/amd64  node:bullseye-slim
RUN cat /etc/apt/sources.list
RUN apt-get update -y

RUN apt-get install curl -y

最初我没有使用 --platform=linux/amd64,并且构建完成时没有出现错误,但这导致它在 arm/64 体系结构中构建图像,从而导致问题 运行 图像.根据我的搜索,我发现添加 --platform=linux/amd64 将确保图像是根据我使用的库之一的要求构建在 x86 架构上的。

所以我决定添加--platform=linux/amd64。但从那时起,每当我尝试构建图像时,它都会卡在 RUN apt-get update -y 步骤。 我把它放在 运行 过夜(超过 10 小时),但它仍然卡在台阶上。

我还 运行 使用他的标志 --progress=plain 构建以获得更详细的日志,但是没有 apt-get update 的日志,它似乎只是停留在步骤上。

输出结果如下

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 30B
#1 transferring dockerfile: 331B done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 transferring context: 34B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/node:bullseye-slim
#3 DONE 1.2s

#4 [1/8] FROM docker.io/library/node:bullseye-slim@sha256:22a517a42af0f2bf961e12daa3a940244e5ddf450c6da6c0e245b652f1027713
#4 DONE 0.0s

#5 [2/8] RUN cat /etc/apt/sources.list
#5 CACHED

#6 [internal] load build context
#6 transferring context: 757B done
#6 DONE 0.0s

#7 [3/8] RUN apt-get update -y

我是 运行 这台配备 M1 Pro 芯片的 14 英寸新款 MacBook Pro。

我已经尝试 运行 docker system prune -a 并再次尝试构建,但仍然卡住了。我尝试使用 node:bullseye 而不是 node:bullseye-slim 但它仍然卡住了。如果我删除 --platform=linux/amd64,构建将毫无问题地完成。

知道问题是什么吗?我该如何解决?

所以, 似乎重新启动 docker 有效,我不敢相信我以前没有想到这一点。我做了系统修剪但从未重新启动 docker.

对于遇到类似问题的任何其他人,请尝试重新启动 docker