如何为所有平台构建像 https://github.com/hashicorp/terraform-provider-aws 这样的 Terraform 提供程序?当我这样做时,我只在Mac上得到一个二进制文件。make build我想为Terraform通常支持的所有平台构建。
2 回答

catspeake
TA贡献1111条经验 获得超0个赞
您可以通过设置环境变量和 Go 工具链可以理解的环境变量来针对特定的单个其他平台进行编译。例如,您可以通过在提供程序的主包中运行以下命令来构建x86_64上的 Windows:GOOS
GOARCH
GOOS=windows GOARCH=amd64 go install
不幸的是,为提供商团队支持的所有体系结构构建的过程是由每个提供商团队维护的构建过程,因此在提供商之间可能会有所不同。但是,一种常见的模式(对于 AWS 提供商来说也是如此)是使用 GoReleaser 跨多个平台构建、标记和发布版本。
在撰写本文时,AWS 提供商的 .goreleaser.yml
指定了受支持的操作系统和架构组合的矩阵。因此,如果您安装了 GoReleaser,则可以使用 goreleaser
build 为同一组目标构建分发包。
对于团队使用 GoReleaser 管理其版本的其他提供商来说,情况也是如此。一些提供商可能会使用其他模式,但在撰写本文时,GoReleaser是Terraform文档中推荐的技术,因此这是一个非常常见的选择。

尚方宝剑之说
TA贡献1788条经验 获得超4个赞
您可以传递环境变量,并用于所需的操作系统和体系结构。GOOS
GOARCH
例如:为Linux ppc64架构构建。GOOS=linux GOARCH=ppc64 go build
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消