登录
首页 >  Golang >  Go问答

怎样在 GAE 构建中传递 -ldflags?

来源:stackoverflow

时间:2024-03-05 21:12:24 345浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《怎样在 GAE 构建中传递 -ldflags?》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

我有一个用 go 编写的 http 服务。在 main.go 内部,我有一个全局 version 字符串。

package main

var version string

在本地,我使用 -ldflags "-x main.version=$version 进行构建,其中 $version 由 shell 环境确定,如下所示:

version=v0.16.0 go build ./cmd/app -ldflags "-x main.version=$version

我最近决定试用 google app engine,并从基本的 yaml 文件开始:

runtime: go111

handlers:
- url: /.*
  script: auto

我可以在 yaml 文件中设置什么,以便指示 gae 使用等效的 ldflags 进行构建以烘焙我的版本字符串?

我还应该提到,在构建时,我在本地使用带有 go111module=on 的 go 模块。


解决方案


您无法使用 app.yaml 文件执行此操作。 不过,您可以使用 Cloud build 构建应用程序并将其部署到 app engine。 在您的 cloudbuild.yaml 中,您可以在构建步骤中添加一行

args: ['build', '-a', '-installsuffix', 'cgo', '-ldflags', '''-w''', '-o', 'main', './main.go']

好了,本文到此结束,带大家了解了《怎样在 GAE 构建中传递 -ldflags?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>