【问题标题】:Docker for golang application用于 golang 应用程序的 Docker
【发布时间】:2021-01-03 20:25:25
【问题描述】:

我有 golang 应用程序,我想为它构建 docker 映像 名为 cloud-native-go 的应用程序文件夹和 dockerfile 位于根项目下 知道这里有什么问题吗?

FROM golang:alpine3.7
WORKDIR /go/src/app
COPY . .
RUN apk add --no-cache git
RUN go-wrapper download   # "go get -d -v ./..."
RUN go-wrapper install    # "go install -v ./..."

#final stage
FROM alpine:latest
RUN apk --no-cache add ca-certificates
COPY --from=builder /go/bin/app /app
ENTRYPOINT ./app
LABEL Name=cloud-native-go Version=0.0.1
EXPOSE 3000

错误是:

Step 5/12 : RUN go-wrapper download   # "go get -d -v ./..."
 ---> Running in 70c2e00f332d
/bin/sh: go-wrapper: not found

我用

构建它

docker build -t cloud-native-go:1.0.0 .

【问题讨论】:

    标签: docker go


    【解决方案1】:

    go-wrapper 已被弃用并从使用 go 版本 10 及更高版本的图像中删除。见here

    如果您可以使用go v1.9,您可以使用以下图片:golang:1.9.6-alpine3.7

    所以你的Dockerfile 将是:

    FROM golang:1.9.6-alpine3.7
    WORKDIR /go/src/app
    COPY . .
    RUN apk add --no-cache git
    RUN go-wrapper download   # "go get -d -v ./..."
    RUN go-wrapper install    # "go install -v ./..."
    
    #final stage
    FROM alpine:latest
    RUN apk --no-cache add ca-certificates
    COPY --from=builder /go/bin/app /app
    ENTRYPOINT ./app
    LABEL Name=cloud-native-go Version=0.0.1
    EXPOSE 3000
    

    【讨论】:

    • 谢谢,如果我想使用最新的 alpine ,有没有办法使用 someting else 代替 go-wrapper 来让它工作?
    • 你应该自己手动go get你的依赖,然后go install或使用像depglide这样的包管理器来为你安装依赖。
    【解决方案2】:
    FROM golang:alpine
    
    # important!
    ENV GO111MODULE=on
    ENV CGO_ENABLED=0
    ENV GOOS=linux
    ENV GOARCH=amd64
    ENV GOFLAGS=-mod=vendor
    ENV APP_USER app
    ENV APP_HOME /go/src/microservices
    
    RUN mkdir /nameApp
    ADD . /nameApp
    WORKDIR /nameApp
    
    //compile your project
    RUN go mod vendor
    RUN go build
    
    //open the port 8000
    EXPOSE 8000
    CMD [ "/nameApp/nameApp" ]
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2021-07-14
      • 1970-01-01
      • 2016-01-27
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 2020-01-27
      相关资源
      最近更新 更多