diff --git a/Makefile b/Makefile index 4032c7dfe..34e8e22a2 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,8 @@ endif LOCAL_BUILD_FLAGS ?= $(BUILD_FLAGS) LDFLAGS ?= -X=main.version=$(VERSION) -DOCKERFILE = docker/Dockerfile +DOCKERDIR = docker + IMAGE ?= registry.opensource.zalan.do/acid/$(BINARY) TAG ?= $(VERSION) GITHEAD = $(shell git rev-parse --short HEAD) @@ -21,6 +22,14 @@ VERSION ?= $(shell git describe --tags --always --dirty) DIRS := cmd pkg PKG := `go list ./... | grep -v /vendor/` +ifeq ($(DEBUG),1) + DOCKERFILE = DebugDockerfile + DEBUG_POSTFIX := -debug + BUILD_FLAGS += -gcflags "-N -l" +else + DOCKERFILE = Dockerfile +endif + PATH := $(GOPATH)/bin:$(PATH) SHELL := env PATH=$(PATH) $(SHELL) @@ -42,8 +51,8 @@ docker-context: scm-source.json linux mkdir -p docker/build/ cp build/linux/${BINARY} scm-source.json docker/build/ -docker: ${DOCKERFILE} docker-context - cd docker && docker build --rm -t "$(IMAGE):$(TAG)" . +docker: ${DOCKERDIR}/${DOCKERFILE} docker-context + cd "${DOCKERDIR}" && docker build --rm -t "$(IMAGE):$(TAG)$(DEBUG_POSTFIX)" -f "${DOCKERFILE}" . indocker-race: docker run --rm -v "${GOPATH}":"${GOPATH}" -e GOPATH="${GOPATH}" -e RACE=1 -w ${PWD} golang:1.8.1 bash -c "make linux" diff --git a/docker/DebugDockerfile b/docker/DebugDockerfile new file mode 100644 index 000000000..b33cec4dd --- /dev/null +++ b/docker/DebugDockerfile @@ -0,0 +1,10 @@ +FROM alpine +MAINTAINER Team ACID @ Zalando + +# We need root certificates to deal with teams api over https +RUN apk --no-cache add ca-certificates go git musl-dev +RUN go get github.com/derekparker/delve/cmd/dlv + +COPY build/* / + +CMD ["/root/go/bin/dlv", "--listen=:777", "--headless=true", "--api-version=2", "exec", "/postgres-operator"]