From 8f567dc8a2cf1e963a972a0d986703b41988f50b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= <peterke@gmail.com>
Date: Tue, 5 Sep 2017 12:16:59 +0300
Subject: [PATCH] Dockerfile: multi-stage builds, Go 1.9

---
 Dockerfile | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 947f045e5..17fa40951 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,13 +1,15 @@
-FROM alpine:3.6
+# Build Geth in a stock Go builder container
+FROM golang:1.9-alpine as builder
+
+RUN apk add --no-cache make gcc musl-dev linux-headers
 
 ADD . /go-ethereum
-RUN \
-  apk add --no-cache git go make gcc musl-dev linux-headers && \
-  (cd go-ethereum && make geth)                             && \
-  cp go-ethereum/build/bin/geth /usr/local/bin/             && \
-  apk del git go make gcc musl-dev linux-headers            && \
-  rm -rf /go-ethereum
+RUN cd /go-ethereum && make geth
+
+# Pull Geth into a second stage deploy alpine container
+FROM alpine:latest
 
-EXPOSE 8545 30303 30303/udp
+COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
 
+EXPOSE 8545 8546 30303 30303/udp
 ENTRYPOINT ["geth"]
-- 
GitLab