为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
眼眸繁星 2022-08-24 20:25:15
如何为所有平台构建像 https://github.com/hashicorp/terraform-provider-aws 这样的 Terraform 提供程序?当我这样做时,我只在Mac上得到一个二进制文件。make build我想为Terraform通常支持的所有平台构建。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

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

GOOS=windows GOARCH=amd64 go install

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

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

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


查看完整回答
反对 回复 2022-08-24
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您可以传递环境变量,并用于所需的操作系统和体系结构。GOOSGOARCH

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


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号