From b7b3e5cfad53732a379b3784ec2c3b72577ab665 Mon Sep 17 00:00:00 2001
From: Niall Sheridan <nsheridan@gmail.com>
Date: Tue, 7 Aug 2018 14:38:40 +0100
Subject: [PATCH] Use multi-stage build with current Go version

---
 Dockerfile | 17 ++++++++++-------
 README.md  |  7 +++++++
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 8416bbeb..273c1bec 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,12 @@
-FROM golang:1.7-alpine
+FROM golang:latest as build
+LABEL maintainer="nsheridan@gmail.com"
+ARG SRC_DIR=/go/src/github.com/nsheridan/cashier
+WORKDIR ${SRC_DIR}
+ADD . ${SRC_DIR}
+RUN CGO_ENABLED=0 GOOS=linux go install -a -installsuffix static ./cmd/cashierd
 
-ADD . /go/src/github.com/nsheridan/cashier
-RUN apk add --update build-base
-RUN go install github.com/nsheridan/cashier/cmd/cashierd
-
-VOLUME /cashier
+FROM scratch
+LABEL maintainer="nsheridan@gmail.com"
 WORKDIR /cashier
-ENTRYPOINT /go/bin/cashierd
+COPY --from=build /go/bin/cashierd /
+ENTRYPOINT ["/cashierd"]
diff --git a/README.md b/README.md
index 4dd208c2..b1ddfbbc 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@
 - [Cashier](#cashier)
 	- [How it works](#how-it-works)
 - [Installing](#installing)
+  - [Docker](#docker)
 - [Requirements](#requirements)
 	- [Server](#server)
 	- [Client](#client)
@@ -67,6 +68,12 @@ The server requires a configuration file ([sample config](example-server.conf)).
 
 See [the configuration section](#configuration) for more detail.
 
+## Docker
+A [docker image is available](https://hub.docker.com/r/nsheridan/cashier). Example usage:
+```
+docker run -it --rm -p 10000:10000 --name cashier -v ${PWD}:/cashier nsheridan/cashier
+```
+
 # Requirements
 ## Server
 Go 1.10 or later, though it may work with earlier versions.
-- 
GitLab