将 Go lang web 项目二进制推送到 CloudFoundry

Push Go lang web project binary to CloudFoundry

我们可以 deploy/push 我们的 Go web 服务二进制文件到 Cloud Foundry,而不是推送代码库并在那里构建吗?如果可以,那怎么办?我试图找到任何相关的东西,但找不到任何东西。

提前致谢

对于 Go,您可以像任何其他应用程序一样将二进制文件而非代码推送到云铸造厂。

这是 Go 中的 sample app。它展示了如何使用 concourse 管道来构建和推送应用程序。您可以跳过 ci/cd 方面。只需编译代码并执行 cf push.

这是另一个可能有帮助的例子 https://blog.anynines.com/how-to-deploy-a-go-app-on-anynines-and-cloud-foundry/

Can we deploy/push our GO web service binary to CloudFoundry, instead of pushing codebase and build there?

是的。您可以推送任何二进制文件,只要它以兼容的方式编译,并且附带任何库依赖项(不包含在根文件系统中)。构建兼容的二进制文件通常是棘手的部分,但对于 Golang 应用程序,我认为它不应该那么难。

If we can then how?

不要使用 Go 构建包。它需要代码并会尝试为您编译它。

相反,像往常一样构建,但在 Linux 机器、VM 或 w/Docker 上进行。为了获得最佳兼容性,请使用与您的 CF 平台上的堆栈匹配的系统(运行 cf stacks 可见)。撰写本文时的默认堆栈是 cflinuxfs2,它基于 Ubuntu 14.04 Trusty。您还可以使用 cloudfoundry/cflinuxfs2 docker 图像。

然后使用二进制构建包推送生成的二进制文件。

https://docs.cloudfoundry.org/buildpacks/binary/index.html

例如:cf push -b binary_buildpack -c './my_binary_name'

您可能还需要 -p 来指明您的二进制文件所在的文件夹/路径,否则 cf push 将发送当前目录中的所有内容。