使用docker alpine for go会在go get期间产生“未知版本”错误

问题描述 投票:1回答:1

我有以下工作正常的码头工人,我能够运行它并成功构建它!

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/[email protected]: reading github.company.corp/deng/logger-ut/go.mod at revision v1.0.0: unknown revision v1.0.0
docker go alpine dockerhub
1个回答
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"]
© www.soinside.com 2019 - 2024. All rights reserved.