在Docker镜像FROM Terraform中运行GOLANG



我的理解是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添加到上面使用goCLI工具的行中来实现。

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

最新更新