Skip to content

Commit ca46572

Browse files
authored
Merge pull request #158 from infosiftr/multiarch
Convert to templates and add some initial multi-architecture support
2 parents 7e9aedf + 0725373 commit ca46572

File tree

16 files changed

+490
-145
lines changed

16 files changed

+490
-145
lines changed

1.7/Dockerfile

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
ENV GOLANG_VERSION 1.7.5
13-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
14-
ENV GOLANG_DOWNLOAD_SHA256 2e4dd6c44f0693bef4e7b46cc701513d74c3cc44f2419bf519d7868b12931ac3
1513

16-
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
17-
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
18-
&& tar -C /usr/local -xzf golang.tar.gz \
19-
&& rm golang.tar.gz
14+
RUN set -eux; \
15+
\
16+
# this "case" statement is generated via "update.sh"
17+
dpkgArch="$(dpkg --print-architecture)"; \
18+
case "${dpkgArch##*-}" in \
19+
ppc64el) goRelArch='linux-ppc64le'; goRelSha256='ced737e36f2b2017b59f31cce86f50a2519245f017a81b8dce93bf986717e3ed' ;; \
20+
i386) goRelArch='linux-386'; goRelSha256='432cb92ae656f6fe1fa96a981782ef5948438b6da6691423aae900918b1eb955' ;; \
21+
s390x) goRelArch='linux-s390x'; goRelSha256='858df47609594570479ff937e3704c58e06b40e485ce29d7f934eae87b7a4450' ;; \
22+
armhf) goRelArch='linux-armv6l'; goRelSha256='cf93c8171dda189c226fe337e3aae11db24bd600841caab36c91d753f631aa2b' ;; \
23+
amd64) goRelArch='linux-amd64'; goRelSha256='2e4dd6c44f0693bef4e7b46cc701513d74c3cc44f2419bf519d7868b12931ac3' ;; \
24+
*) goRelArch='src'; goRelSha256='4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815'; \
25+
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
26+
esac; \
27+
\
28+
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
29+
wget -O go.tgz "$url"; \
30+
echo "${goRelSha256} *go.tgz" | sha256sum -c -; \
31+
tar -C /usr/local -xzf go.tgz; \
32+
rm go.tgz; \
33+
\
34+
if [ "$goRelArch" = 'src' ]; then \
35+
echo >&2; \
36+
echo >&2 'error: UNIMPLEMENTED'; \
37+
echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \
38+
echo >&2; \
39+
exit 1; \
40+
fi; \
41+
\
42+
export PATH="/usr/local/go/bin:$PATH"; \
43+
go version
2044

2145
ENV GOPATH /go
2246
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.7/alpine/Dockerfile

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,38 @@ FROM alpine:3.4
33
RUN apk add --no-cache ca-certificates
44

55
ENV GOLANG_VERSION 1.7.5
6-
ENV GOLANG_SRC_URL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz
7-
ENV GOLANG_SRC_SHA256 4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815
86

9-
# https://golang.org/issue/14851
10-
COPY no-pic.patch /
11-
# https://golang.org/issue/17847
12-
COPY 17847.patch /
7+
# https://golang.org/issue/14851 (Go 1.8 & 1.7)
8+
# https://golang.org/issue/17847 (Go 1.7)
9+
COPY *.patch /go-alpine-patches/
1310

14-
RUN set -ex \
15-
&& apk add --no-cache --virtual .build-deps \
11+
RUN set -eux; \
12+
apk add --no-cache --virtual .build-deps \
1613
bash \
1714
gcc \
1815
musl-dev \
1916
openssl \
2017
go \
18+
; \
19+
export GOROOT_BOOTSTRAP="$(go env GOROOT)"; \
2120
\
22-
&& export GOROOT_BOOTSTRAP="$(go env GOROOT)" \
21+
wget -O go.tgz "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"; \
22+
echo '4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815 *go.tgz' | sha256sum -c -; \
23+
tar -C /usr/local -xzf go.tgz; \
24+
rm go.tgz; \
2325
\
24-
&& wget -q "$GOLANG_SRC_URL" -O golang.tar.gz \
25-
&& echo "$GOLANG_SRC_SHA256 golang.tar.gz" | sha256sum -c - \
26-
&& tar -C /usr/local -xzf golang.tar.gz \
27-
&& rm golang.tar.gz \
28-
&& cd /usr/local/go/src \
29-
&& patch -p2 -i /no-pic.patch \
30-
&& patch -p2 -i /17847.patch \
31-
&& ./make.bash \
26+
cd /usr/local/go/src; \
27+
for p in /go-alpine-patches/*.patch; do \
28+
[ -f "$p" ] || continue; \
29+
patch -p2 -i "$p"; \
30+
done; \
31+
./make.bash; \
3232
\
33-
&& rm -rf /*.patch \
34-
&& apk del .build-deps
33+
rm -rf /go-alpine-patches; \
34+
apk del .build-deps; \
35+
\
36+
export PATH="/usr/local/go/bin:$PATH"; \
37+
go version
3538

3639
ENV GOPATH /go
3740
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.7/alpine3.5/Dockerfile

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,38 @@ FROM alpine:3.5
33
RUN apk add --no-cache ca-certificates
44

55
ENV GOLANG_VERSION 1.7.5
6-
ENV GOLANG_SRC_URL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz
7-
ENV GOLANG_SRC_SHA256 4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815
86

9-
# https://golang.org/issue/14851
10-
COPY no-pic.patch /
11-
# https://golang.org/issue/17847
12-
COPY 17847.patch /
7+
# https://golang.org/issue/14851 (Go 1.8 & 1.7)
8+
# https://golang.org/issue/17847 (Go 1.7)
9+
COPY *.patch /go-alpine-patches/
1310

14-
RUN set -ex \
15-
&& apk add --no-cache --virtual .build-deps \
11+
RUN set -eux; \
12+
apk add --no-cache --virtual .build-deps \
1613
bash \
1714
gcc \
1815
musl-dev \
1916
openssl \
2017
go \
18+
; \
19+
export GOROOT_BOOTSTRAP="$(go env GOROOT)"; \
2120
\
22-
&& export GOROOT_BOOTSTRAP="$(go env GOROOT)" \
21+
wget -O go.tgz "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"; \
22+
echo '4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815 *go.tgz' | sha256sum -c -; \
23+
tar -C /usr/local -xzf go.tgz; \
24+
rm go.tgz; \
2325
\
24-
&& wget -q "$GOLANG_SRC_URL" -O golang.tar.gz \
25-
&& echo "$GOLANG_SRC_SHA256 golang.tar.gz" | sha256sum -c - \
26-
&& tar -C /usr/local -xzf golang.tar.gz \
27-
&& rm golang.tar.gz \
28-
&& cd /usr/local/go/src \
29-
&& patch -p2 -i /no-pic.patch \
30-
&& patch -p2 -i /17847.patch \
31-
&& ./make.bash \
26+
cd /usr/local/go/src; \
27+
for p in /go-alpine-patches/*.patch; do \
28+
[ -f "$p" ] || continue; \
29+
patch -p2 -i "$p"; \
30+
done; \
31+
./make.bash; \
3232
\
33-
&& rm -rf /*.patch \
34-
&& apk del .build-deps
33+
rm -rf /go-alpine-patches; \
34+
apk del .build-deps; \
35+
\
36+
export PATH="/usr/local/go/bin:$PATH"; \
37+
go version
3538

3639
ENV GOPATH /go
3740
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.7/wheezy/Dockerfile

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
ENV GOLANG_VERSION 1.7.5
13-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
14-
ENV GOLANG_DOWNLOAD_SHA256 2e4dd6c44f0693bef4e7b46cc701513d74c3cc44f2419bf519d7868b12931ac3
1513

16-
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
17-
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
18-
&& tar -C /usr/local -xzf golang.tar.gz \
19-
&& rm golang.tar.gz
14+
RUN set -eux; \
15+
\
16+
# this "case" statement is generated via "update.sh"
17+
dpkgArch="$(dpkg --print-architecture)"; \
18+
case "${dpkgArch##*-}" in \
19+
ppc64el) goRelArch='linux-ppc64le'; goRelSha256='ced737e36f2b2017b59f31cce86f50a2519245f017a81b8dce93bf986717e3ed' ;; \
20+
i386) goRelArch='linux-386'; goRelSha256='432cb92ae656f6fe1fa96a981782ef5948438b6da6691423aae900918b1eb955' ;; \
21+
s390x) goRelArch='linux-s390x'; goRelSha256='858df47609594570479ff937e3704c58e06b40e485ce29d7f934eae87b7a4450' ;; \
22+
armhf) goRelArch='linux-armv6l'; goRelSha256='cf93c8171dda189c226fe337e3aae11db24bd600841caab36c91d753f631aa2b' ;; \
23+
amd64) goRelArch='linux-amd64'; goRelSha256='2e4dd6c44f0693bef4e7b46cc701513d74c3cc44f2419bf519d7868b12931ac3' ;; \
24+
*) goRelArch='src'; goRelSha256='4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815'; \
25+
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
26+
esac; \
27+
\
28+
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
29+
wget -O go.tgz "$url"; \
30+
echo "${goRelSha256} *go.tgz" | sha256sum -c -; \
31+
tar -C /usr/local -xzf go.tgz; \
32+
rm go.tgz; \
33+
\
34+
if [ "$goRelArch" = 'src' ]; then \
35+
echo >&2; \
36+
echo >&2 'error: UNIMPLEMENTED'; \
37+
echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \
38+
echo >&2; \
39+
exit 1; \
40+
fi; \
41+
\
42+
export PATH="/usr/local/go/bin:$PATH"; \
43+
go version
2044

2145
ENV GOPATH /go
2246
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.7/windows/nanoserver/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ RUN $newPath = ('{0}\bin;C:\go\bin;{1}' -f $env:GOPATH, $env:PATH); \
1717
# doing this first to share cache across versions more aggressively
1818

1919
ENV GOLANG_VERSION 1.7.5
20-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.windows-amd64.zip
21-
ENV GOLANG_DOWNLOAD_SHA256 01eb518cb5a12edd6cf7380ec17ebedee755e3ce7e5362febeebb9e70e45fcaa
2220

23-
RUN Write-Host ('Downloading {0} ...' -f $env:GOLANG_DOWNLOAD_URL); \
24-
Invoke-WebRequest -Uri $env:GOLANG_DOWNLOAD_URL -OutFile 'go.zip'; \
21+
RUN $url = ('https://golang.org/dl/go{0}.windows-amd64.zip' -f $env:GOLANG_VERSION); \
22+
Write-Host ('Downloading {0} ...' -f $url); \
23+
Invoke-WebRequest -Uri $url -OutFile 'go.zip'; \
2524
\
26-
Write-Host ('Verifying sha256 ({0}) ...' -f $env:GOLANG_DOWNLOAD_SHA256); \
27-
if ((Get-FileHash go.zip -Algorithm sha256).Hash -ne $env:GOLANG_DOWNLOAD_SHA256) { \
25+
$sha256 = '01eb518cb5a12edd6cf7380ec17ebedee755e3ce7e5362febeebb9e70e45fcaa'; \
26+
Write-Host ('Verifying sha256 ({0}) ...' -f $sha256); \
27+
if ((Get-FileHash go.zip -Algorithm sha256).Hash -ne $sha256) { \
2828
Write-Host 'FAILED!'; \
2929
exit 1; \
3030
}; \

1.7/windows/windowsservercore/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ RUN $newPath = ('{0}\bin;C:\go\bin;{1}' -f $env:GOPATH, $env:PATH); \
4646
# doing this first to share cache across versions more aggressively
4747

4848
ENV GOLANG_VERSION 1.7.5
49-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.windows-amd64.zip
50-
ENV GOLANG_DOWNLOAD_SHA256 01eb518cb5a12edd6cf7380ec17ebedee755e3ce7e5362febeebb9e70e45fcaa
5149

52-
RUN Write-Host ('Downloading {0} ...' -f $env:GOLANG_DOWNLOAD_URL); \
53-
Invoke-WebRequest -Uri $env:GOLANG_DOWNLOAD_URL -OutFile 'go.zip'; \
50+
RUN $url = ('https://golang.org/dl/go{0}.windows-amd64.zip' -f $env:GOLANG_VERSION); \
51+
Write-Host ('Downloading {0} ...' -f $url); \
52+
Invoke-WebRequest -Uri $url -OutFile 'go.zip'; \
5453
\
55-
Write-Host ('Verifying sha256 ({0}) ...' -f $env:GOLANG_DOWNLOAD_SHA256); \
56-
if ((Get-FileHash go.zip -Algorithm sha256).Hash -ne $env:GOLANG_DOWNLOAD_SHA256) { \
54+
$sha256 = '01eb518cb5a12edd6cf7380ec17ebedee755e3ce7e5362febeebb9e70e45fcaa'; \
55+
Write-Host ('Verifying sha256 ({0}) ...' -f $sha256); \
56+
if ((Get-FileHash go.zip -Algorithm sha256).Hash -ne $sha256) { \
5757
Write-Host 'FAILED!'; \
5858
exit 1; \
5959
}; \

1.8/Dockerfile

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
ENV GOLANG_VERSION 1.8.1
13-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
14-
ENV GOLANG_DOWNLOAD_SHA256 a579ab19d5237e263254f1eac5352efcf1d70b9dacadb6d6bb12b0911ede8994
1513

16-
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
17-
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
18-
&& tar -C /usr/local -xzf golang.tar.gz \
19-
&& rm golang.tar.gz
14+
RUN set -eux; \
15+
\
16+
# this "case" statement is generated via "update.sh"
17+
dpkgArch="$(dpkg --print-architecture)"; \
18+
case "${dpkgArch##*-}" in \
19+
ppc64el) goRelArch='linux-ppc64le'; goRelSha256='b7b47572a2676449716865a66901090c057f6f1d8dfb1e19528fcd0372e5ce74' ;; \
20+
i386) goRelArch='linux-386'; goRelSha256='cb3f4527112075a8b045d708f793aeee2709d2f5ddd320973a1413db06fddb50' ;; \
21+
s390x) goRelArch='linux-s390x'; goRelSha256='0a59f4034a27fc51431989da520fd244d5261f364888134cab737e5bc2158cb2' ;; \
22+
armhf) goRelArch='linux-armv6l'; goRelSha256='e8a8326913640409028ef95c2107773f989b1b2a6e11ceb463c77c42887381da' ;; \
23+
amd64) goRelArch='linux-amd64'; goRelSha256='a579ab19d5237e263254f1eac5352efcf1d70b9dacadb6d6bb12b0911ede8994' ;; \
24+
*) goRelArch='src'; goRelSha256='33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57'; \
25+
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
26+
esac; \
27+
\
28+
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
29+
wget -O go.tgz "$url"; \
30+
echo "${goRelSha256} *go.tgz" | sha256sum -c -; \
31+
tar -C /usr/local -xzf go.tgz; \
32+
rm go.tgz; \
33+
\
34+
if [ "$goRelArch" = 'src' ]; then \
35+
echo >&2; \
36+
echo >&2 'error: UNIMPLEMENTED'; \
37+
echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \
38+
echo >&2; \
39+
exit 1; \
40+
fi; \
41+
\
42+
export PATH="/usr/local/go/bin:$PATH"; \
43+
go version
2044

2145
ENV GOPATH /go
2246
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.8/alpine/Dockerfile

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,38 @@ FROM alpine:3.5
33
RUN apk add --no-cache ca-certificates
44

55
ENV GOLANG_VERSION 1.8.1
6-
ENV GOLANG_SRC_URL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz
7-
ENV GOLANG_SRC_SHA256 33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57
86

9-
# https://golang.org/issue/14851
10-
COPY no-pic.patch /
7+
# https://golang.org/issue/14851 (Go 1.8 & 1.7)
8+
# https://golang.org/issue/17847 (Go 1.7)
9+
COPY *.patch /go-alpine-patches/
1110

12-
RUN set -ex \
13-
&& apk add --no-cache --virtual .build-deps \
11+
RUN set -eux; \
12+
apk add --no-cache --virtual .build-deps \
1413
bash \
1514
gcc \
1615
musl-dev \
1716
openssl \
1817
go \
18+
; \
19+
export GOROOT_BOOTSTRAP="$(go env GOROOT)"; \
1920
\
20-
&& export GOROOT_BOOTSTRAP="$(go env GOROOT)" \
21+
wget -O go.tgz "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"; \
22+
echo '33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57 *go.tgz' | sha256sum -c -; \
23+
tar -C /usr/local -xzf go.tgz; \
24+
rm go.tgz; \
2125
\
22-
&& wget -q "$GOLANG_SRC_URL" -O golang.tar.gz \
23-
&& echo "$GOLANG_SRC_SHA256 golang.tar.gz" | sha256sum -c - \
24-
&& tar -C /usr/local -xzf golang.tar.gz \
25-
&& rm golang.tar.gz \
26-
&& cd /usr/local/go/src \
27-
&& patch -p2 -i /no-pic.patch \
28-
&& ./make.bash \
26+
cd /usr/local/go/src; \
27+
for p in /go-alpine-patches/*.patch; do \
28+
[ -f "$p" ] || continue; \
29+
patch -p2 -i "$p"; \
30+
done; \
31+
./make.bash; \
2932
\
30-
&& rm -rf /*.patch \
31-
&& apk del .build-deps
33+
rm -rf /go-alpine-patches; \
34+
apk del .build-deps; \
35+
\
36+
export PATH="/usr/local/go/bin:$PATH"; \
37+
go version
3238

3339
ENV GOPATH /go
3440
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

1.8/stretch/Dockerfile

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
ENV GOLANG_VERSION 1.8.1
13-
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
14-
ENV GOLANG_DOWNLOAD_SHA256 a579ab19d5237e263254f1eac5352efcf1d70b9dacadb6d6bb12b0911ede8994
1513

16-
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
17-
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
18-
&& tar -C /usr/local -xzf golang.tar.gz \
19-
&& rm golang.tar.gz
14+
RUN set -eux; \
15+
\
16+
# this "case" statement is generated via "update.sh"
17+
dpkgArch="$(dpkg --print-architecture)"; \
18+
case "${dpkgArch##*-}" in \
19+
ppc64el) goRelArch='linux-ppc64le'; goRelSha256='b7b47572a2676449716865a66901090c057f6f1d8dfb1e19528fcd0372e5ce74' ;; \
20+
i386) goRelArch='linux-386'; goRelSha256='cb3f4527112075a8b045d708f793aeee2709d2f5ddd320973a1413db06fddb50' ;; \
21+
s390x) goRelArch='linux-s390x'; goRelSha256='0a59f4034a27fc51431989da520fd244d5261f364888134cab737e5bc2158cb2' ;; \
22+
armhf) goRelArch='linux-armv6l'; goRelSha256='e8a8326913640409028ef95c2107773f989b1b2a6e11ceb463c77c42887381da' ;; \
23+
amd64) goRelArch='linux-amd64'; goRelSha256='a579ab19d5237e263254f1eac5352efcf1d70b9dacadb6d6bb12b0911ede8994' ;; \
24+
*) goRelArch='src'; goRelSha256='33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57'; \
25+
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
26+
esac; \
27+
\
28+
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
29+
wget -O go.tgz "$url"; \
30+
echo "${goRelSha256} *go.tgz" | sha256sum -c -; \
31+
tar -C /usr/local -xzf go.tgz; \
32+
rm go.tgz; \
33+
\
34+
if [ "$goRelArch" = 'src' ]; then \
35+
echo >&2; \
36+
echo >&2 'error: UNIMPLEMENTED'; \
37+
echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \
38+
echo >&2; \
39+
exit 1; \
40+
fi; \
41+
\
42+
export PATH="/usr/local/go/bin:$PATH"; \
43+
go version
2044

2145
ENV GOPATH /go
2246
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

0 commit comments

Comments
 (0)