使用 Go Basic Web 应用程序运行 Docker:“没有这样的文件或目录”错误
尝试在 Go 中运行基本 Web 应用程序时使用 Docker 时,用户可能会遇到以下错误:
standard_init_linux.go:190: exec user process caused "no such file or directory"
出现此错误是因为 Web 应用程序的二进制可执行文件缺少所需的库或解释器。在这种特定情况下,它缺少 libc 库,该库在导入 net 包时默认动态链接到二进制文件。
要解决此问题,可以采取以下步骤:
使用交叉编译来编译二进制文件标志:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
这些标志禁用交叉编译,指定目标操作系统和体系结构,并从二进制文件中删除调试信息。
使用 Docker 镜像中编译好的二进制文件:
替换其中的 CMD 指令Dockerfile 包含以下内容:
CMD ["mybin"]
通过执行以下步骤,用户可以正确编译 Go Web 应用程序二进制文件,链接必要的库,并消除“没有这样的文件或目录” " 在 Docker 容器中运行应用程序时出错。
以上是为什么 My Go Docker Web 应用程序失败并出现'没有这样的文件或目录”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!