如何为所有平台构建Terraform提供商?

如何为所有平台构建像 https://github.com/hashicorp/terraform-provider-aws 这样的 Terraform 提供程序?

当我这样做时,我只在Mac上得到一个二进制文件。make build

我想为Terraform通常支持的所有平台构建。


眼眸繁星
浏览 96回答 2
2回答

catspeake

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

尚方宝剑之说

您可以传递环境变量,并用于所需的操作系统和体系结构。GOOSGOARCH例如:为Linux ppc64架构构建。GOOS=linux GOARCH=ppc64 go build
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go