1# Based on docker-library's golang 1.6 alpine and wheezy docker files.
2# https://github.com/docker-library/golang/blob/master/1.6/alpine/Dockerfile
3# https://github.com/docker-library/golang/blob/master/1.6/wheezy/Dockerfile
4FROM buildpack-deps:buster-scm
5
6ENV GOLANG_SRC_REPO_URL https://github.com/golang/go
7
8ENV GOLANG_BOOTSTRAP_URL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz
9ENV GOLANG_BOOTSTRAP_SHA256 ce3140662f45356eb78bc16a88fc7cfb29fb00e18d7c632608245b789b2086d2
10ENV GOLANG_BOOTSTRAP_PATH /usr/local/bootstrap
11
12# gcc for cgo
13RUN apt-get update && apt-get install -y --no-install-recommends \
14		g++ \
15		gcc \
16		libc6-dev \
17		make \
18		git \
19	&& rm -rf /var/lib/apt/lists/*
20
21# Setup the Bootstrap
22RUN mkdir -p "$GOLANG_BOOTSTRAP_PATH" \
23	&& curl -fsSL "$GOLANG_BOOTSTRAP_URL" -o golang.tar.gz \
24	&& echo "$GOLANG_BOOTSTRAP_SHA256  golang.tar.gz" | sha256sum -c - \
25	&& tar -C "$GOLANG_BOOTSTRAP_PATH" -xzf golang.tar.gz \
26	&& rm golang.tar.gz
27
28# Get and build Go tip
29RUN export GOROOT_BOOTSTRAP=$GOLANG_BOOTSTRAP_PATH/go \
30	&& git clone "$GOLANG_SRC_REPO_URL" /usr/local/go \
31	&& cd /usr/local/go/src \
32	&& ./make.bash \
33	&& rm -rf "$GOLANG_BOOTSTRAP_PATH" /usr/local/go/pkg/bootstrap
34
35# Build Go workspace and environment
36ENV GOPATH /go
37ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
38RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" \
39	&& chmod -R 777 "$GOPATH"
40
41WORKDIR $GOPATH
42