From bf7df5d5b50ae23600d4ae1119ddf23183f099be Mon Sep 17 00:00:00 2001 From: Dmitrii Dolgov Date: Fri, 2 Feb 2018 10:39:39 +0100 Subject: [PATCH] Add debug mode You can specify an environment variable DEBUG 1/0 to enable/disable debug mode. Debug mode assumes delve dependency for remote debugging, and debugging symbols for go build. --- Makefile | 14 ++++++++++++-- docker/DebugDockerfile | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 docker/DebugDockerfile diff --git a/Makefile b/Makefile index 4032c7dfe..5db4f2097 100644 --- a/Makefile +++ b/Makefile @@ -8,9 +8,19 @@ ifeq ($(RACE),1) CGO_ENABLED=1 endif +ifeq ($(DEBUG),1) + BUILD_FLAGS += -gcflags "-N -l" +endif + LOCAL_BUILD_FLAGS ?= $(BUILD_FLAGS) LDFLAGS ?= -X=main.version=$(VERSION) -DOCKERFILE = docker/Dockerfile + +ifeq ($(DEBUG),1) + DOCKERFILE = docker/DebugDockerfile +else + DOCKERFILE = docker/Dockerfile +endif + IMAGE ?= registry.opensource.zalan.do/acid/$(BINARY) TAG ?= $(VERSION) GITHEAD = $(shell git rev-parse --short HEAD) @@ -43,7 +53,7 @@ docker-context: scm-source.json linux cp build/linux/${BINARY} scm-source.json docker/build/ docker: ${DOCKERFILE} docker-context - cd docker && docker build --rm -t "$(IMAGE):$(TAG)" . + docker build --rm -t "$(IMAGE):$(TAG)" -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"]