微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何为所有平台构建 Terraform 提供程序?

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

当我执行 make build 时,我在 Mac 上只能得到一个二进制文件

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

解决方法

您可以为所需的操作系统和架构传递环境变量 GOOSGOARCH

例如:GOOS=linux GOARCH=ppc64 go build 为 linux ppc64 架构构建。

,

您可以通过设置 Go 工具链理解的环境变量 GOOSGOARCH 来针对特定的单个其他平台进行编译。例如,您可以在 x86_64 上通过在提供程序的主包中运行它来为 Windows 构建:

GOOS=windows GOARCH=amd64 go install

不幸的是,为提供者团队支持的所有架构构建过程是一个由每个提供者团队维护的构建过程,因此可能因提供者而异。但是,一种常见的模式(对于 AWS 提供商也是如此)是使用 GoReleaser 跨多个平台构建、标记和发布版本。

在撰写本文时,the AWS provider's .goreleaser.yml 指定了支持的操作系统和架构组合的矩阵。因此,如果您安装 GoReleaser,您可以使用 goreleaser build 为同一组目标构建分发包。

对于团队使用 GoReleaser 管理其发布的其他提供商而言,情况也应如此。一些提供者可能会使用其他模式,但在撰写本文时 GoReleaser 是 Terraform 文档中推荐的技术,因此它是一个非常常见的选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。