Dockerfile 无法下载模块

我有以下代码结构


notificator

|    Dockerfile

|    go.mod

|    go.sum

|    notificator.pb.go

|

+-- cmd

|   .go files

+-- pkg

    .go files

以下 Dockerfile 成功构建:


FROM golang


WORKDIR /notificator


COPY . .

RUN go get  -t -v ./...


RUN mkdir bin


RUN go build -o bin ././...

RUN chmod +x bin/cmd


ENTRYPOINT [ "./bin/cmd" ]

但是当我将它重构为:


FROM golang


WORKDIR /notificator


COPY go.mod .

COPY go.sum .

RUN go mod download


COPY . .


RUN mkdir bin


RUN go build -o bin ././...

RUN chmod +x bin/cmd


ENTRYPOINT [ "./bin/cmd" ]

go mod 下载返回以下错误:


#12 0.816 /go/pkg/mod/github.com/go-kit/kit@v0.12.0/sd/etcd/client.go:13:2: missing go.sum entry for module providing package go.etcd.io/etcd/client/v2 (imported by github.com/go-kit/kit/sd/etcd); to add:

#12 0.816   go get github.com/go-kit/kit/sd/etcd@v0.12.0

但是 go.sum 包含:


go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=

go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=

go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=

go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=

我不明白为什么这两个文件的行为不同?


PIPIONE
浏览 105回答 1
1回答

森林海

运行go mod tidy解决了问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go