cache gomodule layer in Docker
install packages via go modules
run COPY go.mod . and COPY go.sum . before go mod download in Dockerfile
code:Dockerfile
FROM golang:1.12.0-alpine3.9
ENV GO111MODULE=on
WORKDIR /go/src/app
RUN apk update --no-cache \
&& apk add --no-cache \
git \
gcc
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD "go", "run", "main.go"