From 80e6c20e4fbeb49c33abf31fcb1264d27a6f8596 Mon Sep 17 00:00:00 2001 From: Martin Buchleitner Date: Thu, 13 Jun 2019 14:33:57 +0200 Subject: [PATCH 1/4] adding docker image build Signed-off-by: Martin Buchleitner --- integrations/inputunifi/.dockerignore | 2 ++ integrations/inputunifi/Dockerfile | 25 +++++++++++++++++++++++++ integrations/inputunifi/Makefile | 10 ++++++++++ 3 files changed, 37 insertions(+) create mode 100644 integrations/inputunifi/.dockerignore create mode 100644 integrations/inputunifi/Dockerfile diff --git a/integrations/inputunifi/.dockerignore b/integrations/inputunifi/.dockerignore new file mode 100644 index 00000000..02787e9f --- /dev/null +++ b/integrations/inputunifi/.dockerignore @@ -0,0 +1,2 @@ +Dockerfile +.travis.yml diff --git a/integrations/inputunifi/Dockerfile b/integrations/inputunifi/Dockerfile new file mode 100644 index 00000000..fd528bf1 --- /dev/null +++ b/integrations/inputunifi/Dockerfile @@ -0,0 +1,25 @@ +FROM golang:stretch as builder + +RUN mkdir -p $GOPATH/pkg/mod $GOPATH/bin + +RUN apt-get update \ + && apt-get install -y ruby ruby-dev curl \ + && gem install --no-document fpm \ + && curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh \ + && mkdir -p $GOPATH/src/github.com/davidnewhall + +COPY . $GOPATH/src/github.com/davidnewhall/unifi-poller +WORKDIR $GOPATH/src/github.com/davidnewhall/unifi-poller + +RUN dep ensure \ + && make dockerbin + +FROM scratch + +COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/unifi-poller.dockerbin /unifi-poller +COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/examples/up.conf.example /etc/unifi-poller/up.conf + +VOLUME [ "/etc/unifi-poller"] + +ENTRYPOINT [ "/unifi-poller" ] +CMD [ "--config=/etc/unifi-poller/up.conf" ] \ No newline at end of file diff --git a/integrations/inputunifi/Makefile b/integrations/inputunifi/Makefile index 1b8f2f59..0ec85b3e 100644 --- a/integrations/inputunifi/Makefile +++ b/integrations/inputunifi/Makefile @@ -9,6 +9,7 @@ OSX_PKG_PREFIX=com.github.davidnewhall GOLANGCI_LINT_ARGS=--enable-all -D gochecknoglobals PACKAGE:=./cmd/$(BINARY) LIBRARY:=./pkg/$(BINARY) +DOCKER_REPO="" ITERATION:=$(shell git rev-list --count HEAD||echo 0) ifeq ($(VERSION),) @@ -69,6 +70,12 @@ $(BINARY).linux: # Building linux binary. GOOS=linux go build -o $(BINARY).linux -ldflags "-w -s -X github.com/davidnewhall/unifi-poller/pkg/unifi-poller.Version=$(VERSION)" $(PACKAGE) +dockerbin: $(BINARY).dockerbin +$(BINARY).dockerbin: + # Building linux binary. + CGO_ENABLED=0 GOOS=linux go build -o $(BINARY).dockerbin -ldflags "-w -s -X github.com/davidnewhall/unifi-poller/pkg/unifi-poller.Version=$(VERSION)" $(PACKAGE) + + macos: $(BINARY).macos $(BINARY).macos: # Building darwin binary. @@ -122,6 +129,9 @@ $(BINARY)-$(VERSION).pkg: check_fpm package_build_osx --description "$(DESC)" \ --chdir package_build_osx +docker: + docker build -t ${DOCKER_REPO}/${BINARY} . + # OSX packages use /usr/local because Apple doesn't allow writing many other places. package_build_osx: readme man macos # Building package environment for macOS. From d5921b58c2c5b4b2720cda68c7ee570caf139742 Mon Sep 17 00:00:00 2001 From: Martin Buchleitner Date: Fri, 14 Jun 2019 07:39:16 +0200 Subject: [PATCH 2/4] remove dockerbin target, fix dockerfile and update docker_repo in makefile Signed-off-by: Martin Buchleitner --- integrations/inputunifi/Dockerfile | 4 ++-- integrations/inputunifi/Makefile | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/integrations/inputunifi/Dockerfile b/integrations/inputunifi/Dockerfile index fd528bf1..6670bc50 100644 --- a/integrations/inputunifi/Dockerfile +++ b/integrations/inputunifi/Dockerfile @@ -12,11 +12,11 @@ COPY . $GOPATH/src/github.com/davidnewhall/unifi-poller WORKDIR $GOPATH/src/github.com/davidnewhall/unifi-poller RUN dep ensure \ - && make dockerbin + && CGO_ENABLED=0 make build FROM scratch -COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/unifi-poller.dockerbin /unifi-poller +COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/unifi-poller /unifi-poller COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/examples/up.conf.example /etc/unifi-poller/up.conf VOLUME [ "/etc/unifi-poller"] diff --git a/integrations/inputunifi/Makefile b/integrations/inputunifi/Makefile index 0ec85b3e..a1362bb1 100644 --- a/integrations/inputunifi/Makefile +++ b/integrations/inputunifi/Makefile @@ -9,7 +9,7 @@ OSX_PKG_PREFIX=com.github.davidnewhall GOLANGCI_LINT_ARGS=--enable-all -D gochecknoglobals PACKAGE:=./cmd/$(BINARY) LIBRARY:=./pkg/$(BINARY) -DOCKER_REPO="" +DOCKER_REPO="golift" ITERATION:=$(shell git rev-list --count HEAD||echo 0) ifeq ($(VERSION),) @@ -70,12 +70,6 @@ $(BINARY).linux: # Building linux binary. GOOS=linux go build -o $(BINARY).linux -ldflags "-w -s -X github.com/davidnewhall/unifi-poller/pkg/unifi-poller.Version=$(VERSION)" $(PACKAGE) -dockerbin: $(BINARY).dockerbin -$(BINARY).dockerbin: - # Building linux binary. - CGO_ENABLED=0 GOOS=linux go build -o $(BINARY).dockerbin -ldflags "-w -s -X github.com/davidnewhall/unifi-poller/pkg/unifi-poller.Version=$(VERSION)" $(PACKAGE) - - macos: $(BINARY).macos $(BINARY).macos: # Building darwin binary. From 156cde22edf6df1b14a034f908396417efa390a9 Mon Sep 17 00:00:00 2001 From: Martin Buchleitner Date: Fri, 14 Jun 2019 09:29:22 +0200 Subject: [PATCH 3/4] cleanup dockerfile Signed-off-by: Martin Buchleitner --- integrations/inputunifi/Dockerfile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/integrations/inputunifi/Dockerfile b/integrations/inputunifi/Dockerfile index 6670bc50..81214a23 100644 --- a/integrations/inputunifi/Dockerfile +++ b/integrations/inputunifi/Dockerfile @@ -1,10 +1,12 @@ +# +# building static go binary with golang container +# FROM golang:stretch as builder RUN mkdir -p $GOPATH/pkg/mod $GOPATH/bin RUN apt-get update \ - && apt-get install -y ruby ruby-dev curl \ - && gem install --no-document fpm \ + && apt-get install -y curl \ && curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh \ && mkdir -p $GOPATH/src/github.com/davidnewhall @@ -12,14 +14,21 @@ COPY . $GOPATH/src/github.com/davidnewhall/unifi-poller WORKDIR $GOPATH/src/github.com/davidnewhall/unifi-poller RUN dep ensure \ - && CGO_ENABLED=0 make build + && CGO_ENABLED=0 make linux +# +# creating container for run +# to use this container use the following command: +# +# docker run -d -v /your/config/up.conf:/etc/unifi-poller/up.conf golift/unifi-poller +# +# by using "-e UNIFI_PASSWORD=your-secret-pasword" you can avoid this configuration in the config file +# FROM scratch -COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/unifi-poller /unifi-poller +COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/unifi-poller.linux /unifi-poller COPY --from=builder /go/src/github.com/davidnewhall/unifi-poller/examples/up.conf.example /etc/unifi-poller/up.conf VOLUME [ "/etc/unifi-poller"] ENTRYPOINT [ "/unifi-poller" ] -CMD [ "--config=/etc/unifi-poller/up.conf" ] \ No newline at end of file From a487374611150616f8aa5a1c50b09f683c45d667 Mon Sep 17 00:00:00 2001 From: Martin Buchleitner Date: Fri, 14 Jun 2019 09:29:38 +0200 Subject: [PATCH 4/4] replace braces and rename docker repo Signed-off-by: Martin Buchleitner --- integrations/inputunifi/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/inputunifi/Makefile b/integrations/inputunifi/Makefile index a1362bb1..5669ea21 100644 --- a/integrations/inputunifi/Makefile +++ b/integrations/inputunifi/Makefile @@ -9,7 +9,7 @@ OSX_PKG_PREFIX=com.github.davidnewhall GOLANGCI_LINT_ARGS=--enable-all -D gochecknoglobals PACKAGE:=./cmd/$(BINARY) LIBRARY:=./pkg/$(BINARY) -DOCKER_REPO="golift" +DOCKER_REPO=golift ITERATION:=$(shell git rev-list --count HEAD||echo 0) ifeq ($(VERSION),) @@ -124,7 +124,7 @@ $(BINARY)-$(VERSION).pkg: check_fpm package_build_osx --chdir package_build_osx docker: - docker build -t ${DOCKER_REPO}/${BINARY} . + docker build -t $(DOCKER_REPO)/$(BINARY) . # OSX packages use /usr/local because Apple doesn't allow writing many other places. package_build_osx: readme man macos