|
| 1 | +FROM buildpack-deps:buster-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.11.12 |
| 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='14ec881815eb9e6618f95df5eb385d961283efc196d97912595ba6484a56180d' ;; \ |
| 20 | + armhf) goRelArch='linux-armv6l'; goRelSha256='5ffe422dc054909da4e468cb0df6e2cd41cebfe4fd9515f32bb3e3fbfc416016' ;; \ |
| 21 | + arm64) goRelArch='linux-arm64'; goRelSha256='d79c075773fc3121d0e719b83b46115efff685ade94545a52f3ac22f43d76196' ;; \ |
| 22 | + i386) goRelArch='linux-386'; goRelSha256='8467e68d6ed6f6a95c6db6a1e352fc529f256bba0955eaef472e50cf4c0cba61' ;; \ |
| 23 | + ppc64el) goRelArch='linux-ppc64le'; goRelSha256='92bd4dc0dc8227fb22ad88545dd72669923019760cd640d4cca189860870561a' ;; \ |
| 24 | + s390x) goRelArch='linux-s390x'; goRelSha256='a4d100a1c92e50fd9b8a4d529da0ef0f4509c72643d6fb481918fd543f5871c0' ;; \ |
| 25 | + *) goRelArch='src'; goRelSha256='6d7a5ba05476609a7614af3292f29c3be06327503c1f1fdc02ef417870fd6926'; \ |
| 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