代码之家  ›  专栏  ›  技术社区  ›  gingerbreadboy

在Terraform的Docker图像中运行GOLANG

  •  1
  • gingerbreadboy  · 技术社区  · 4 年前

    我的理解是Terraform Docker图像来自Go(Golang)基地图像。我正在尝试使用Terraform图像作为基础来构建自己的图像,以便在运行Terraform之前运行一些自定义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 命令工作?

    1 回复  |  直到 4 年前
        1
  •  2
  •   Micah Parks    4 年前

    你的基本形象, hashicorp/terraform:1.1.3 在Alpine Linux上构建,未安装Go。

    解决方案是在使用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