Reference: https://blog.golang.org/using-go-modules
export GOPRIVATE=private.com
export GO111MODULE=on
- Setting private repository to GOPRIVATE
- If
GO111MODULE=onis set, go.mod and go.sum is updated at go build.
$ cd /project
$ go mod init
$ go build
$ go mod vendor
go mod init creates go.mod and go.sum files. go.mod file manages dependency and version for modules. go.sum file manages checksum for dependency modules to confirm reliability.
go mod vendor can take modules to vendor. If vendor is used, execute go mod vendor and set GO111MODULE=off.
ENV GO111MODULE=off
Setting GO111MODULE=off prevent downloading and use modules from vendor when making a build on docker.
$ cd /project
$ go get -u github.com/gorilla/mux
$ go build
$ go mod vendor
$ cd /project
$ go mod tidy
$ go build
$ go mod vendor
go mod tidy and go mod vendor remove unnecessary from vendor.