无法在docker / bin / sh中运行go程序:<program>:找不到

时间:2018-01-06 04:52:41

标签: docker go

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

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

我明白了:

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

是什么给出了?

1 个答案:

答案 0 :(得分:2)

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