Dockerfile: use experimental syntax and buildkit cache-mounts
+# syntax=docker/dockerfile:1.1.7-experimental
ARG GO_VERSION=1.13.15
FROM golang:${GO_VERSION}-alpine AS golang
@@ -5,15 +6,24 @@ ENV CGO_ENABLED=0
FROM golang AS esc
ARG ESC_VERSION=v0.2.0
-RUN GO111MODULE=on go get github.com/mjibson/esc@${ESC_VERSION}
+RUN --mount=type=cache,target=/root/.cache/go-build \
+ --mount=type=cache,target=/go/pkg/mod \
+ --mount=type=tmpfs,target=/go/src/ \
+ GO111MODULE=on go get github.com/mjibson/esc@${ESC_VERSION}
FROM golang AS gotestsum
ARG GOTESTSUM_VERSION=v0.4.0
-RUN GO111MODULE=on go get gotest.tools/gotestsum@${GOTESTSUM_VERSION}
+RUN --mount=type=cache,target=/root/.cache/go-build \
+ --mount=type=cache,target=/go/pkg/mod \
+ --mount=type=tmpfs,target=/go/src/ \
+ GO111MODULE=on go get gotest.tools/gotestsum@${GOTESTSUM_VERSION}
FROM golang AS vndr
ARG VNDR_VERSION=v0.1.1
-RUN GO111MODULE=on go get github.com/LK4D4/vndr@${VNDR_VERSION}
+RUN --mount=type=cache,target=/root/.cache/go-build \
+ --mount=type=cache,target=/go/pkg/mod \
+ --mount=type=tmpfs,target=/go/src/ \
+ GO111MODULE=on go get github.com/LK4D4/vndr@${VNDR_VERSION}
FROM golang AS dev
RUN apk add --no-cache \
