I have Makefile that supports build in docker image, part of it looks something like this:
NAME := <name> PACKAGE := github.com/username/repo .PHONY: build build: clean gobuild ## Build application .PHONY: gobuild gobuild: LDFLAGS=$(shell ./scripts/gen-ldflags.sh $(VERSION)) gobuild: @echo "Building '$(NAME)'" @env go generate -mod=vendor @CGO_ENABLED=0 go build -mod=vendor --ldflags "$(LDFLAGS)" -tags netgo . .PHONY: clean clean: ## Remove build artifacts @echo "==> Cleaning build artifacts..." @rm -fv coverage.txt @find . -name '*.test' | xargs rm -fv @rm -fv $(NAME) .PHONY: build-in-docker build-in-docker: @docker run --rm \ -v $(shell pwd):/go/src/$(PACKAGE) \ -w /go/src/$(PACKAGE) \ -e GO111MODULE=on \ golang:latest \ make build As you can see, there are some external scripts called (like gen-ldflags.sh) and docker build is just invoking "make build" inside docker container. I do not use this for CI (GitLab CI is already setup to use docker images), so that is why I use latest tag (in CI I use explicit version of Go). There are some leftovers from earlier times, like mounting working dir to GOPATH, which is not needed if GO111MODULE is set. On Friday, February 1, 2019 at 4:48:01 AM UTC+1, Keith Brown wrote: > > does anyone use docker golang image to compile? if so,how is your setup? > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.