我在WSL中构建我的go程序(bash on windows),将输出文件夹作为卷安装在centos docker容器中并尝试运行该程序。当试图像这样运行程序时:
docker exec -it <container-instance> /bin/sh
# ./<program-name>
我明白了:
/bin/sh: ./<program-name>: not found
是什么给出了?
答案 0 :(得分:2)
最初,我认为问题是因为我正在为错误的架构编译go程序。它正在为amd64编译。当我尝试将其编译为386(GOARCH = 386)时,它似乎启动了。在进一步调查中,容器运行64位(使用uname -m
和getconf LONG_BIT
检查)。最后,有效的解决方案是在编译之前设置CGO_ENABLED = 0(参见here)