使用 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"]
我有以下 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"]