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