docker - 无法在 docker/bin/sh : <program>: not found 中运行 go 程序

标签 docker go

我正在 WSL(Windows 上的 bash)中构建我的 go 程序,将输出文件夹作为一个卷安装在 centos docker 容器中并尝试运行该程序。尝试像这样运行程序时:

docker exec -it <container-instance> /bin/sh
# ./<program-name>

我得到:

/bin/sh: ./<program-name>: not found

什么给了?

最佳答案

最初,我认为问题是因为我在为错误的体系结构编译 go 程序。它正在为 amd64 编译。当我尝试为 386(使用 GOARCH=386)编译它时,它似乎启动了。在进一步调查中,容器运行的是 64 位 centos(使用 uname -mgetconf LONG_BIT 检查)。最后,有效的解决方案是在编译前设置 CGO_ENABLED=0(参见 here)

关于docker - 无法在 docker/bin/sh : <program>: not found 中运行 go 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124388/

相关文章:

go - 如何通过 map[string]interface{} 递归迭代

go - 我如何模拟接口(interface)内的特定嵌入式方法

docker - Heroku h18 错误,而我的后端响应 200 到他们的路由器(多部分/表单数据)

Docker 在终止进程后分配了 RAM

docker - Kubernetes DNS 查找非常慢,ndots :5

c# - 使用 Entity Framework 在创建Docker应用程序期间访问Sqlite数据库

适用于 Windows 10 的 ubuntu 应用程序上的 Docker 启动但未运行

go - 如何从字符串动态运行go代码?

go - 修改要编码为 JSON 的数据

bash - 如何启动并运行 sh 格式化程序?