首页 > 后端开发 > Golang > 为什么我的 Dockerized Go Web 应用程序失败并显示'没有这样的文件或目录”?

为什么我的 Dockerized Go Web 应用程序失败并显示'没有这样的文件或目录”?

Patricia Arquette
发布: 2024-12-16 11:10:13
原创
791 人浏览过

Why Does My Dockerized Go Web App Fail with

运行 Go Web 应用程序时 Docker Image Exec 错误:“没有这样的文件或目录”

最近创建的 Docker 映像遇到错误运行时,显示消息“standard_init_linux.go:190: exec user process Causes “no such file or directory”。此错误会阻止 Go Web 应用程序在 Docker 容器中正常执行。

此错误的根本原因在于缺少文件、缺少解释器的脚本或缺少所需库的可执行文件。在本例中,在 Go 代码中导入“net”包会导致自动包含 libc 作为动态链接的二进制文件。要验证这一点,请在二进制文件上使用“ldd”命令。

要解决此问题,必须提供额外的构建标志:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
登录后复制

这些标志禁用 CGO(Go 编译器的构建) -支持C),指定目标操作系统和体系结构,并生成静态链接的二进制文件。这确保了所有必要的库都嵌入到可执行文件中,从而消除了对外部依赖项的需要。

通过在 Go 构建过程中合并这些标志,生成的 Docker 映像将包含所需的依赖项,并且错误消息将是已解决,允许 Go Web 应用程序在 Docker 容器中成功执行。

以上是为什么我的 Dockerized Go Web 应用程序失败并显示'没有这样的文件或目录”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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