From 501641e552023d83f380e0864721a08c38ea816c Mon Sep 17 00:00:00 2001 From: Francesco Sacchi Date: Fri, 19 Aug 2016 08:49:57 +0200 Subject: [PATCH 1/4] Fix docker volume paths --- Makefile | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index d0b3eb9..ec0625c 100644 --- a/Makefile +++ b/Makefile @@ -53,13 +53,14 @@ else endif endif +ROOTDIR=$(shell pwd) local: FORCE @echo spawning docker container $(GOLANG_IMAGE) @docker run --rm=true \ - -v ${PWD}:/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ - -v ${PWD}/Makefile:/go/Makefile \ - -v ${PWD}/bin:/go/bin \ + -v $(ROOTDIR):/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ + -v $(ROOTDIR)/Makefile:/go/Makefile \ + -v $(ROOTDIR)/bin:/go/bin \ -w /go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ $(GOLANG_IMAGE) \ make -f /go/Makefile $(PROJECT)-$(BUILD_OS)-$(BUILD_ARCH) UID=${UID} GID=${GID} VERSION=${VERSION} BUILD_OS=${BUILD_OS} BUILD_ARCH=${BUILD_ARCH} TESTING_OPTIONS=${TESTING_OPTIONS} @@ -67,9 +68,9 @@ local: FORCE develop: FORCE @echo spawning docker container $(GOLANG_IMAGE) @docker run --rm=true \ - -v ${PWD}:/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ - -v ${PWD}/Makefile:/go/Makefile \ - -v ${PWD}/bin:/go/bin \ + -v $(ROOTDIR):/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ + -v $(ROOTDIR)/Makefile:/go/Makefile \ + -v $(ROOTDIR)/bin:/go/bin \ -w /go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ -ti \ $(GOLANG_IMAGE) \ @@ -80,9 +81,9 @@ develop: FORCE all: FORCE @echo spawning docker container $(GOLANG_IMAGE) @docker run --rm=true \ - -v ${PWD}:/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ - -v ${PWD}/Makefile:/go/Makefile \ - -v ${PWD}/bin:/go/bin \ + -v $(ROOTDIR):/go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ + -v $(ROOTDIR)/Makefile:/go/Makefile \ + -v $(ROOTDIR)/bin:/go/bin \ -w /go/src/$(SCM_SERVICE)/$(SCM_TEAM)/$(PROJECT)/ \ $(GOLANG_IMAGE) \ make -f /go/Makefile build UID=${UID} GID=${GID} VERSION=${VERSION} BUILD_OS=${BUILD_OS} BUILD_ARCH=${BUILD_ARCH} TESTING_OPTIONS=${TESTING_OPTIONS} From 5dbb41f405a3545c098df9c033a481bd188dcdaa Mon Sep 17 00:00:00 2001 From: Francesco Sacchi Date: Fri, 19 Aug 2016 11:01:14 +0200 Subject: [PATCH 2/4] Overriding BUILD_OS and BUILD_ARCH In docker on windows, BUILD_OS and ARCH change when inside the docker container, so we need to reload such values --- Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index ec0625c..35dcaf8 100644 --- a/Makefile +++ b/Makefile @@ -20,20 +20,20 @@ DEVELOP_SKIP_BUILD=false DEVELOP_AFTER_BUILD= ifeq ($(OS),Windows_NT) - BUILD_OS = windows + override BUILD_OS = windows ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) - BUILD_ARCH = amd64 + override BUILD_ARCH = amd64 endif ifeq ($(PROCESSOR_ARCHITECTURE),x86) - BUILD_ARCH = 386 + override BUILD_ARCH = 386 endif else UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) - BUILD_OS = linux + override BUILD_OS = linux endif ifeq ($(UNAME_S),Darwin) - BUILD_OS = darwin + override BUILD_OS = darwin endif ifneq ("$(shell which arch)","") @@ -43,13 +43,13 @@ else endif ifeq ($(UNAME_P),x86_64) - BUILD_ARCH = amd64 + override BUILD_ARCH = amd64 endif ifneq ($(filter %86,$(UNAME_P)),) - BUILD_ARCH = 386 + override BUILD_ARCH = 386 endif ifneq ($(filter arm%,$(UNAME_P)),) - BUILD_ARCH = arm + override BUILD_ARCH = arm endif endif From df44f1f8525bc17db82ac1022c43ead7c44fb3ce Mon Sep 17 00:00:00 2001 From: Francesco Sacchi Date: Fri, 19 Aug 2016 11:04:15 +0200 Subject: [PATCH 3/4] Detecting the right windows architecture --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 35dcaf8..bfb1e28 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,11 @@ ifeq ($(OS),Windows_NT) override BUILD_ARCH = amd64 endif ifeq ($(PROCESSOR_ARCHITECTURE),x86) - override BUILD_ARCH = 386 + ifeq ($(PROCESSOR_ARCHITEW6432),AMD64) + override BUILD_ARCH = amd64 + else + override BUILD_ARCH = 386 + endif endif else UNAME_S := $(shell uname -s) From dafadccf6528c4fb2051524ddf5f209b15be499f Mon Sep 17 00:00:00 2001 From: Francesco Sacchi Date: Fri, 19 Aug 2016 11:06:35 +0200 Subject: [PATCH 4/4] Tools have to be installed for the container os and architecture, not for the make caller, i.e. windows --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bfb1e28..b571532 100644 --- a/Makefile +++ b/Makefile @@ -147,7 +147,7 @@ develop-$(PROJECT)-%: FORCE @# @for TOOL in ${TOOLS_TO_INSTALL}; do \ echo "* fetching $${TOOL} with netgo suffix for $(GOOS):$(GOARCH)"; \ - GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go get -tags netgo -installsuffix netgo -u $${TOOL}/...; \ + CGO_ENABLED=0 go get -tags netgo -installsuffix netgo -u $${TOOL}/...; \ done @# @echo "* generating sources" @@ -219,7 +219,7 @@ $(PROJECT)-%: FORCE @# @for TOOL in ${TOOLS_TO_INSTALL}; do \ echo "* fetching $${TOOL} with netgo suffix for $(GOOS):$(GOARCH)"; \ - GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go get -tags netgo -installsuffix netgo -u $${TOOL}/...; \ + CGO_ENABLED=0 go get -tags netgo -installsuffix netgo -u $${TOOL}/...; \ done @# @echo "* generating sources"