|
| 1 | +FROM buildpack-deps:stretch-scm |
| 2 | + |
| 3 | +# gcc for cgo |
| 4 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 5 | + g++ \ |
| 6 | + gcc \ |
| 7 | + libc6-dev \ |
| 8 | + make \ |
| 9 | + pkg-config \ |
| 10 | + && rm -rf /var/lib/apt/lists/* |
| 11 | + |
| 12 | +ENV GOLANG_VERSION 1.14rc1 |
| 13 | + |
| 14 | +RUN set -eux; \ |
| 15 | + \ |
| 16 | +# this "case" statement is generated via "update.sh" |
| 17 | + dpkgArch="$(dpkg --print-architecture)"; \ |
| 18 | + case "${dpkgArch##*-}" in \ |
| 19 | + amd64) goRelArch='linux-amd64'; goRelSha256='69398d41e5f6b87cdf3969aae665be4dfd3cc2ef36a61ab47a261f96130ed788' ;; \ |
| 20 | + armhf) goRelArch='linux-armv6l'; goRelSha256='bfe041f7d2a62f895f2d11703a29bdd31a48cca9a3c36418d59680bc1cbb8a6d' ;; \ |
| 21 | + arm64) goRelArch='linux-arm64'; goRelSha256='a5509448b06f02f5198fe8bbf5af88ab483af9c46f231c3f308748016fbc32c9' ;; \ |
| 22 | + i386) goRelArch='linux-386'; goRelSha256='831087aa0eba8b6dfa221036d00641613996ac66d7c635f1e34c53d5f0922623' ;; \ |
| 23 | + ppc64el) goRelArch='linux-ppc64le'; goRelSha256='fe1bf34d2b117d785f2fb33151c44ca8bc2188678c9e903fa0ad30573547b412' ;; \ |
| 24 | + s390x) goRelArch='linux-s390x'; goRelSha256='2302fa0e30144a969cb1879eed8aeb9a82c2b520fcda8aebbb20a539ad427c25' ;; \ |
| 25 | + *) goRelArch='src'; goRelSha256='76188ea84e95baa502d058c9598020c7654d6adaf40b82cabcf57c68df19963a'; \ |
| 26 | + echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \ |
| 27 | + esac; \ |
| 28 | + \ |
| 29 | + url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \ |
| 30 | + wget -O go.tgz "$url"; \ |
| 31 | + echo "${goRelSha256} *go.tgz" | sha256sum -c -; \ |
| 32 | + tar -C /usr/local -xzf go.tgz; \ |
| 33 | + rm go.tgz; \ |
| 34 | + \ |
| 35 | + if [ "$goRelArch" = 'src' ]; then \ |
| 36 | + echo >&2; \ |
| 37 | + echo >&2 'error: UNIMPLEMENTED'; \ |
| 38 | + echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \ |
| 39 | + echo >&2; \ |
| 40 | + exit 1; \ |
| 41 | + fi; \ |
| 42 | + \ |
| 43 | + export PATH="/usr/local/go/bin:$PATH"; \ |
| 44 | + go version |
| 45 | + |
| 46 | +ENV GOPATH /go |
| 47 | +ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH |
| 48 | + |
| 49 | +RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH" |
| 50 | +WORKDIR $GOPATH |
0 commit comments