1

我有一个用 Go 编写的 HTTP 服务。在里面main.go我有一个全局version字符串。

package main

var version string

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

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 模块。

4

1 回答 1

0

你不能用你的 app.yaml 文件来做。但是,您可以使用Cloud build来构建您的应用并将其部署到 App Engine。在您的 cloudbuild.yaml 中,您可以在构建步骤中添加一行

args: ['build', '-a', '-installsuffix', 'cgo', '-ldflags', '''-w''', '-o', 'main', './main.go']
于 2019-02-19T07:45:13.507 回答