我有一个用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模块一起使用。
答案 0 :(得分:0)
您无法使用app.yaml文件执行此操作。 但是,您可以使用Cloud build来构建您的应用并将其部署到App Engine。 在您的cloudbuild.yaml中,您可以在构建步骤中添加一行
args: ['build', '-a', '-installsuffix', 'cgo', '-ldflags', '''-w''', '-o', 'main', './main.go']