我是 Go 新手,想知道是否可以在我的计算机上构建我的应用程序,然后放在具有不同 Linux 系统的目标机器上并运行而无需编译它或其依赖项?
如何确定二进制文件可以在哪些目标系统上运行?
交互式爱情
浏览 459回答 2
2回答
元芳怎么了
请注意,在 Linux 操作系统上编译的 Go 二进制文件可以在其他 Linux 发行版上运行。如果 Docker 是一个选项,您可以考虑使用DockerHub上的 Go Docker 映像之一。您可以基于其中一个<go-version>-onbuild映像创建 Dockerfile,或者在您的计算机上构建您的应用程序,然后COPY将二进制文件转移到基于您选择的 Linux 发行版的映像中。onbuild图像构建并运行您的应用程序。你可以在这里查看它的 Dockerfile 。我看到团队使用第二种方法在 golang-alpine Docker 容器中分别构建和运行应用程序二进制文件以减小生产映像的大小。否则,您可以使用 Go 内置的交叉编译支持,归结为:将GOOS和GOARCH环境变量设置为目标操作系统和体系结构的值。跑步go build -v YOURPACKAGE请参阅此处以获取支持GOOS和GOARCH值的列表。