Golang项目如何打包部署?

7

作为一名JVM背景的开发者,我想知道如何将golang项目部署到生产环境。是否有类似于JAR文件的等效物?

是否有一个独立的包管理器可以安装在服务器上,并且有一个依赖清单文件,可以运行该文件来下载服务器上的所有依赖项。我特别不想在服务器上构建项目,因为我们不能在生产环境中使用任何编译器等工具。

谢谢。


2
你只需要复制二进制文件。 - Stephan Dollberg
1个回答

8
如果你运行go install <pkg>,二进制文件将被放置在$GOPATH/bin中。你可以将该二进制文件复制到另一台具有相同操作系统和架构的机器上。
你也可以转到包含main包的目录并直接运行go build。该二进制文件将被放置在当前目录中。
Go二进制文件中没有依赖项需要跟踪。它是静态链接的。(某些系统库可能是动态链接的,但如果你在同一操作系统上运行,这不应该是一个问题。)

没错 - 就是这么简单。如果您的应用程序需要部署附加资产文件、配置文件等等,您可以将它们全部放入一个tarball与二进制文件一起使用。或者,一些资产可能会使用类似 https://github.com/jteeuwen/go-bindata 的工具嵌入到二进制文件中。 - Rick-777
@RobNapier 如果要部署的机器有不同的配置(操作系统),该怎么办? - Itachi
1
在这种情况下,您需要进行交叉编译。http://dave.cheney.net/2015/03/03/cross-compilation-just-got-a-whole-lot-better-in-go-1-5 - Rob Napier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接