如何将-ldflags传递到GAE构建?

时间:2019-02-17 13:14:33

标签: google-app-engine go go-build

我有一个用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模块一起使用。

1 个答案:

答案 0 :(得分:0)

您无法使用app.yaml文件执行此操作。 但是,您可以使用Cloud build来构建您的应用并将其部署到App Engine。 在您的cloudbuild.yaml中,您可以在构建步骤中添加一行

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