Docker 映像错误:“standard_init_linux.go:190: 运行 Go Web 应用程序时执行用户进程导致“没有此类文件或目录”
此错误消息表明Docker镜像无法找到或执行指定的用户进程,问题源于缺少依赖项或编译不当。
构建 Go Web 应用程序时,请确保 webapp.go 文件导入必要的包,例如 net 包。另外,net 导入默认包含 libc 作为动态链接的二进制文件。 Docker 镜像中缺失。
要解决此问题,请使用以下编译参数:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
通过指定 CGO_ENABLED=0,您禁用 CGO(Go 调用 C 函数的机制)并强制纯 Go 编译,从而不需要 GOOS=linux 和 GOARCH=amd64 指示目标平台和体系结构 -a 构建静态链接的二进制文件。 w' 从二进制文件中删除不必要的信息。
使用这些参数重新编译后,构建 Docker 映像并运行它。现在错误应该已解决,并且 Web 应用程序应该在容器内正常运行。
以上是为什么 Docker 中的 My Go Web 应用程序失败并显示'standard_init_linux.go:190: exec user process Causes 'no such file or directory””?的详细内容。更多信息请关注PHP中文网其他相关文章!