我正在 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 -m
和 getconf LONG_BIT
检查)。最后,有效的解决方案是在编译前设置 CGO_ENABLED=0(参见 here)
关于docker - 无法在 docker/bin/sh : <program>: not found 中运行 go 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124388/