使用 docker alpine for go 在 go get 期间产生 "unknown revision" 错误

using docker alpine for go produces "unknown revision" error during go get

我有以下 docker 可以正常工作,我能够 运行 它并成功构建它!

FROM golang:1.13.6 AS build-env



ENV GO111MODULE=on
ENV GOOS=linux
ENV CGO_ENABLED=0




RUN mkdir -p /go/src/github.company.corp/deng/fst-cl
WORKDIR /go/src/github.company.corp/deng/fsr-clie


COPY ./ ./

# build the code
RUN go build -v -o ./fsr  ./src/cmd/main.go

现在我想更改图像以使用更轻的docker图像,例如 go alpine

所以我更改了 from 并添加了 alpine 版本,还添加了 git,但是构建失败了 所以去 lib,在更改之前不会发生,知道可能缺少什么吗?

FROM golang:1.13.6-alpine AS build-env



ENV GO111MODULE=on
ENV GOOS=linux
ENV CGO_ENABLED=0


## git is required to fetch go dependencies
RUN apk add --no-cache ca-certificates git
RUN apk add --no-cache gcc musl-dev


RUN mkdir -p /go/src/github.company.corp/deng/fst-cl
WORKDIR /go/src/github.company.corp/deng/fsr-clie


COPY ./ ./

# build the code
RUN go build -v -o ./fsr  ./src/cmd/main.go

错误是针对驻留在我们公司 git 回购上的特定回购,但我不明白为什么它发生在 golang:1.13.6-alpine 上并且在 golang:1.13.6 上工作正常??? ?

顺便说一句,我尝试使用不同版本的 go alpine 但没有成功……

这是错误:

get "github.company.corp/deng/logger-ut": found meta tag get.metaImport{Prefix:"github.company.corp/deng/logger-ut", VCS:"git", RepoRoot:"https://github.company.corp/deng/logger-ut.git"} at //github.company.corp/deng/logger-ut?go-get=1
go: github.company.corp/deng/logger-ut@v1.0.0: reading github.company.corp/deng/logger-ut/go.mod at revision v1.0.0: unknown revision v1.0.0

如果您想要更亮的图像并希望使用 apline,您可以使用下面的示例。在 scratch 上,您的最终应用图片应该大约为 7MB。适当调整!

# STAGE 1: prepare
FROM golang:1.13.1-alpine3.10 as prepare

WORKDIR /source

COPY go.mod .
COPY go.sum .

RUN go mod download

# STAGE 2: build
FROM prepare AS build

COPY . .

RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o bin/app -v your/app.go

# STAGE 3: run
FROM scratch as run

COPY --from=build /source/bin/app /app

ENTRYPOINT ["/app"]