【问题标题】:How to pass -ldflags to GAE build?如何将 -ldflags 传递给 GAE 构建?
【发布时间】:2019-02-17 13:14:32
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 1970-01-01
      • 2018-02-23
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      相关资源
      最近更新 更多