首页 > 后端开发 > Golang > 如何解决 Docker Scratch Images 和 Go 的'没有这样的文件或目录”错误?

如何解决 Docker Scratch Images 和 Go 的'没有这样的文件或目录”错误?

DDD
发布: 2024-12-15 11:09:11
原创
152 人浏览过

How to Resolve

Docker Scratch 镜像“没有这样的文件或目录”:已解决

使用 Docker 的 scrap 镜像时,可能会遇到错误“no这样的文件或目录”执行二进制文件时。此错误通常源于二进制文件被动态链接到图像中不存在的库。

要纠正此问题,请禁用 CGO (C Go):

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
    -ldflags="-w -s" -o $PROJ_BIN_PATH ./cmd/...
登录后复制

CGO 链接到系统库,这可能会导致临时映像出现问题。通过禁用 CGO,您可以确保二进制文件是静态链接的并且不依赖于外部库。

此外,您可以使用 ldd 验证二进制文件中的动态链接:

docker build --target=0 -t your_go_image .
docker run -it --rm your_go_image ldd /$PROJ_NAME
登录后复制

This命令将列出二进制文件链接到的所有库。如果 ldd 返回“不是动态可执行文件”,则二进制文件是静态链接的。

以上是如何解决 Docker Scratch Images 和 Go 的'没有这样的文件或目录”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板