diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..dab5c2d34d85ebbef5953ffa321c132208c857b4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +Dockerfile* +*.md +Gopkg.* +hue_exporter +LICENSE +Makefile \ No newline at end of file diff --git a/Dockerfile b/Dockerfile.amd64 similarity index 50% rename from Dockerfile rename to Dockerfile.amd64 index e7a28b890c8ff156d50d418823f5ba95c97e7b2c..a5e4c2a38405d0922c968477497cc0e3e255aa51 100644 --- a/Dockerfile +++ b/Dockerfile.amd64 @@ -1,8 +1,10 @@ -FROM quay.io/prometheus/busybox:latest +FROM amd64/busybox:musl MAINTAINER Richard Mitchell <hue-exporter@mitch.org.uk> -COPY hue_exporter /bin/hue_exporter -COPY hue_exporter.example.yml /etc/hue_exporter/config.yml +COPY ./build/hue_exporter.amd64 /bin/hue_exporter +COPY hue_exporter.example.yml /etc/hue_exporter/config.yml + +VOLUME /etc/hue_exporter EXPOSE 9366 ENTRYPOINT [ "/bin/hue_exporter" ] diff --git a/Dockerfile.arm7 b/Dockerfile.arm7 new file mode 100644 index 0000000000000000000000000000000000000000..515b735e2d19bc772a45b1b955083880ca075009 --- /dev/null +++ b/Dockerfile.arm7 @@ -0,0 +1,11 @@ +FROM arm32v7/busybox:latest +MAINTAINER Richard Mitchell <hue-exporter@mitch.org.uk> + +COPY ./build/hue_exporter.arm7 /bin/hue_exporter +COPY hue_exporter.example.yml /etc/hue_exporter/config.yml + +VOLUME /etc/hue_exporter + +EXPOSE 9366 +ENTRYPOINT [ "/bin/hue_exporter" ] +CMD [ "--config.file=/etc/hue_exporter/config.yml" ] \ No newline at end of file diff --git a/Dockerfile.build.amd64 b/Dockerfile.build.amd64 new file mode 100644 index 0000000000000000000000000000000000000000..facfbb2bfb0f17cada8d06fc82f282da0c0c21c9 --- /dev/null +++ b/Dockerfile.build.amd64 @@ -0,0 +1,7 @@ +FROM amd64/golang:stretch + +COPY . /go/src/github.com/mitchellrj/hue_exporter +WORKDIR /go/src/github.com/mitchellrj/hue_exporter + +VOLUME /build +CMD go build -o /build/hue_exporter.amd64 diff --git a/Dockerfile.build.arm7 b/Dockerfile.build.arm7 new file mode 100644 index 0000000000000000000000000000000000000000..afa956b396c31cc6e01e65da5482ab1825108445 --- /dev/null +++ b/Dockerfile.build.arm7 @@ -0,0 +1,7 @@ +FROM arm32v7/golang:stretch + +COPY . /go/src/github.com/mitchellrj/hue_exporter +WORKDIR /go/src/github.com/mitchellrj/hue_exporter + +VOLUME /build +CMD go build -o /build/hue_exporter.arm7 diff --git a/Makefile b/Makefile index 5d80863b6197f84ebbe4487861abf1ac2a42708f..f80bc562b77f5b3440b8f374f346106fb1ea7d88 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,46 @@ all: style staticcheck build test style: - gofmt -d $$(find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' + ! gofmt -d $$(find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' test: - go test ./... + go test ./... format: - go fmt ./... + go fmt ./... vet: - go vet ./... + go vet ./... staticcheck: - staticcheck ./... + staticcheck ./... build: - go build + go build -docker: +dist: darwin amd64 arm7 docker + +darwin: + cp hue_exporter build/hue_exporter.darwin + +amd64: + docker build --pull -f Dockerfile.build.amd64 -t hue_exporter_builder:latest . + docker run -v $$(pwd)/build:/build hue_exporter_builder:latest +arm7: + docker build --pull -f Dockerfile.build.arm7 -t hue_exporter_builder:latest-arm . + docker run -v $$(pwd)/build:/build hue_exporter_builder:latest-arm + +docker: + docker build --pull -f Dockerfile.amd64 -t mitchellrj/hue_exporter:latest . + docker tag mitchellrj/hue_exporter:latest mitchellrj/hue_exporter:$$(build/hue_exporter.darwin -V) + docker build --pull -f Dockerfile.arm7 -t mitchellrj/hue_exporter:latest-arm7 . + docker tag mitchellrj/hue_exporter:latest mitchellrj/hue_exporter:$$(build/hue_exporter.darwin -V)-arm7 + +push: + docker push mitchellrj/hue_exporter:latest + docker push mitchellrj/hue_exporter:$$(build/hue_exporter.darwin -V) + docker push mitchellrj/hue_exporter:latest-arm7 + docker push mitchellrj/hue_exporter:$$(build/hue_exporter.darwin -V)-arm7 .PHONY: all style test format vet staticcheck build \ No newline at end of file diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c96a04f008ee21e260b28f7701595ed59e2839e3 --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file