From 9573c83179cc0daed984dc0aeec4dc054000dc30 Mon Sep 17 00:00:00 2001 From: Robert Jacob Date: Sun, 21 Jun 2020 14:57:31 +0200 Subject: [PATCH] Update build system --- .dockerignore | 1 + Dockerfile | 16 ++++------------ Makefile | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 12 deletions(-) create mode 120000 .dockerignore create mode 100644 Makefile diff --git a/.dockerignore b/.dockerignore new file mode 120000 index 0000000..3e4e48b --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.gitignore \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 28c4698..7abc029 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,21 @@ -FROM golang:1 AS builder +FROM golang:1.14.4-alpine AS builder -RUN apt-get update && apt-get install -y upx +RUN apk add --no-cache make git WORKDIR /build -ENV LD_FLAGS="-w" -ENV CGO_ENABLED=0 - COPY go.mod go.sum /build/ RUN go mod download RUN go mod verify COPY . /build/ -RUN echo "-- TEST" \ - && go test -cover ./... \ - && echo "-- BUILD" \ - && go install -tags netgo -ldflags "${LD_FLAGS}" . \ - && echo "-- PACK" \ - && upx -9 /go/bin/netatmo-exporter +RUN make FROM busybox LABEL maintainer="Robert Jacob " COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /go/bin/netatmo-exporter /bin/netatmo-exporter +COPY --from=builder /build/netatmo-exporter /bin/netatmo-exporter USER nobody EXPOSE 9210 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ed6a0e5 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +.PHONY: all test build-binary install clean + +GO ?= go +GO_CMD := CGO_ENABLED=0 $(GO) +GIT_VERSION := $(shell git describe --tags --dirty) +VERSION := $(GIT_VERSION:v%=%) +GIT_COMMIT := $(shell git rev-parse HEAD) + +all: test build-binary + +test: + $(GO_CMD) test -cover ./... + +build-binary: + $(GO_CMD) build -tags netgo -ldflags "-w -X main.Version=$(VERSION) -X main.GitCommit=$(GIT_COMMIT)" -o netatmo-exporter . + +clean: + rm -f netatmo-exporter