-1

I have the following code structure

notificator
|    Dockerfile
|    go.mod
|    go.sum
|    notificator.pb.go
|
+-- cmd
|   .go files
+-- pkg
    .go files

The following Dockerfile builds successfully:

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

But when I refactor it to:

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 download returns the following error:

#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

BUT go.sum contains:

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=

I don't understand why the two files behave differently?

Chanonry
  • 423
  • 7
  • 19
  • Did you issue `go mod tidy` and how does the go.mod file look like? – 030 Jan 12 '22 at 12:13
  • I had not done a go mod tidy but when I did, it built successfully. Thanks – Chanonry Jan 12 '22 at 12:31
  • Does this answer your question? [Go update all modules](https://stackoverflow.com/questions/67201708/go-update-all-modules) – 030 Jan 13 '22 at 15:51

1 Answers1

1

Running go mod tidy fixed the issue

Chanonry
  • 423
  • 7
  • 19