использование docker alpine для go приводит к ошибке "неизвестная ревизия" во время go get - PullRequest
1 голос
/ 09 февраля 2020

У меня есть следующее 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

Поэтому я изменил версию с и добавил альпийскую версию, а также добавил git Тем не менее, сборка завершается неудачно для So go 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

1 Ответ

1 голос
/ 10 февраля 2020

Если вы хотите более светлое изображение и w sh для использования apline, вы можете использовать пример ниже. Ваше окончательное изображение приложения должно быть примерно 7 МБ на scratch. Отрегулируйте его, как оно подходит!

# 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"]
...