运行 来自 Terraform 的 Docker 图像中的 GOLANG

Run GOLANG in Docker image FROM Terraform

我的理解是 Terraform Docker 图像来自 Go (Golang) 基础图像。我正在尝试使用 Terraform 图像作为基础构建我自己的图像,因此我可以 运行 在 运行 设置我的 Terraform 之前使用一些自定义 Go 命令。但是,当我尝试 运行 Go 时,找不到它。

FROM hashicorp/terraform:1.1.3

WORKDIR /app

COPY go.mod ./
COPY go.sum ./
COPY someotherterraformfiles.tf ./

RUN echo $(ls)

RUN go mod download

错误日志...

Step 5/6 : RUN echo $(ls)
 ---> Running in a4333944d871
go.mod go.sum
Removing intermediate container a4333944d871
 ---> 173d8ba93215
Step 6/6 : RUN go mod download
 ---> Running in 4943df7818c2
/bin/sh: go: not found
The command '/bin/sh -c go mod download' returned a non-zero code: 127

如何让我的 go 命令生效?

您的基础映像 hashicorp/terraform:1.1.3 构建于 Alpine Linux 之上,未安装 Go。

解决方法是先安装Go再使用。这可以通过将 RUN apk add go 添加到上面使用 go CLI 工具的行来实现。

FROM hashicorp/terraform:1.1.3

RUN apk add go

WORKDIR /app

COPY go.mod ./
COPY go.sum ./
COPY someotherterraformfiles.tf ./

RUN echo $(ls)

RUN go mod download