解决 Moby 中使用 make binary 报错: golang:1.20.3-bullseye 镜像拉取失败
在使用 Moby 构建项目时,执行 make binary 命令可能会遇到以下错误:
=> ERROR [internal] load metadata for docker.io/library/golang:1.20.3-bullseye 0.6s
=> [internal] load metadata for docker.io/tonistiigi/xx:1.2.1 0.0s
------
> [internal] load metadata for docker.io/library/golang:1.20.3-bullseye:
------
Dockerfile:26
--------------------
24 |
25 | # base
26 | >>> FROM --platform=$BUILDPLATFORM ${GOLANG_IMAGE} AS base
27 | COPY --from=xx / /
28 | RUN echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
--------------------
ERROR: failed to solve: golang:1.20.3-bullseye: failed commit on ref "unknown-sha256:546e1974913a53e1ccb562cc4d637105542b62e4226134bc080dc92bc7126daf": "unknown-sha256:546e1974913a53e1ccb562cc4d637105542b62e4226134bc080dc92bc7126daf" failed size validation: 9171 != 8893: failed precondition
原因:
这个错误通常是由于拉取 golang:1.20.3-bullseye 镜像时出现问题导致的。可能是镜像下载失败、镜像损坏或本地缓存错误。
解决方法:
-
重新拉取镜像:
docker pull golang:1.20.3-bullseye -
尝试使用其他镜像:
如果仍然无法拉取该镜像,可以尝试使用其他可用的 Golang 镜像,例如
golang:latest或其他版本。
清除本地镜像缓存:
如果问题仍然存在,可以尝试清除本地镜像缓存:
-
删除所有未使用的镜像和容器:
docker system prune -a这将删除所有未使用的镜像、容器、网络、卷和其他 Docker 资源。请注意,这将删除所有未使用的镜像,包括您手动构建的镜像。
-
删除特定镜像:
docker rmi <image-name>其中,
<image-name>是要删除的镜像名称,例如golang:1.20.3-bullseye。
其他建议:
- 确保您有足够的磁盘空间来存储镜像。
- 检查您的网络连接是否稳定。
- 尝试使用 Docker Hub 的镜像搜索功能查找其他可用的 Golang 镜像。
注意:
清除本地镜像缓存可能会删除您手动构建的镜像,请在执行 docker system prune -a 命令之前备份重要的镜像。
原文地址: https://www.cveoy.top/t/topic/fYNv 著作权归作者所有。请勿转载和采集!