Docker for Golang应用程序

Jen*_*ton 5 go docker

我有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
Run Code Online (Sandbox Code Playgroud)

错误是:

Step 5/12 : RUN go-wrapper download   # "go get -d -v ./..."
 ---> Running in 70c2e00f332d
/bin/sh: go-wrapper: not found
Run Code Online (Sandbox Code Playgroud)

我用它建造

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

Jac*_*ore 5

go-wrapper使用go版本10及更高版本已弃用并已将其从映像中删除。看这里

如果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
Run Code Online (Sandbox Code Playgroud)