THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility.
Client: go
This closes #1459
diff --git a/build/docker/README.md b/build/docker/README.md
index d7a0126..c2b203b 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -148,7 +148,7 @@
| delphi | | | Not in CI |
| dotnet | 2.1.4 | 2.1.4 | v2.1.4 SDK uses v2.0.5 Runtime |
| erlang | 18.3 | 20.0.4 | |
-| go | 1.6.2 | 1.8.3 | |
+| go | 1.7.6 | 1.9.4 | THRIFT-4516: avoid 1.10 |
| haskell | 7.10.3 | 8.0.2 | |
| haxe | 3.2.1 | 3.4.4 | THRIFT-4352: avoid 3.4.2 |
| java | 1.8.0_151 | 1.8.0_151 | |
@@ -164,5 +164,3 @@
| rust | 1.17.0 | 1.21.0 | |
| smalltalk | | | Not in CI |
| swift | | | Not in CI |
-
-
diff --git a/build/docker/ubuntu-artful/Dockerfile b/build/docker/ubuntu-artful/Dockerfile
index 416d75e..dacaa28 100644
--- a/build/docker/ubuntu-artful/Dockerfile
+++ b/build/docker/ubuntu-artful/Dockerfile
@@ -18,6 +18,7 @@
# - dart: does not come with Ubuntu
# - dotnet: does not come with Ubuntu
# - haxe: version 3.4.2 that comes with Ubuntu cores in our CI build
+# - go: xenial comes with 1.8, we want the latest (supported)
# - nodejs: want v8, Ubuntu comes with v6
#
@@ -140,10 +141,15 @@
`# GlibC dependencies` \
libglib2.0-dev
-RUN apt-get install -y --no-install-recommends \
-`# golang (go) dependencies` \
- golang-go \
- golang-race-detector-runtime
+# golang
+ENV GOLANG_VERSION 1.9.4
+ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
+ENV GOLANG_DOWNLOAD_SHA256 15b0937615809f87321a457bb1265f946f9f6e736c563d6c5e0bd2c22e44f779
+RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
+ echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - && \
+ tar -C /usr/local -xzf golang.tar.gz && \
+ ln -s /usr/local/go/bin/go /usr/local/bin && \
+ rm golang.tar.gz
RUN apt-get install -y --no-install-recommends \
`# Haskell dependencies` \
diff --git a/build/docker/ubuntu-trusty/Dockerfile b/build/docker/ubuntu-trusty/Dockerfile
index 40f9c55..a8e4d3b 100644
--- a/build/docker/ubuntu-trusty/Dockerfile
+++ b/build/docker/ubuntu-trusty/Dockerfile
@@ -113,9 +113,15 @@
`# GlibC dependencies` \
libglib2.0-dev
-RUN apt-get install -y --no-install-recommends \
-`# golang (go) dependencies` \
- golang-go
+# golang
+ENV GOLANG_VERSION 1.7.6
+ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
+ENV GOLANG_DOWNLOAD_SHA256 ad5808bf42b014c22dd7646458f631385003049ded0bb6af2efc7f1f79fa29ea
+RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
+ echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - && \
+ tar -C /usr/local -xzf golang.tar.gz && \
+ ln -s /usr/local/go/bin/go /usr/local/bin && \
+ rm golang.tar.gz
RUN apt-get install -y --no-install-recommends \
`# Haskell dependencies` \
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index b69d7ea..832542e 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -15,7 +15,9 @@
# Using all stock Ubuntu Xenial packaging except for:
# - d: does not come with Ubuntu so we're installing 2.073.2 for coverage
# - dart: does not come with Ubuntu so we're installing 1.22.1 for coverage
-# - nodejs: Ubuntu comes with 4.2.6 which exits LTS April 2018, so we're installing 6.x
+# - dotnet: does not come with Ubuntu
+# - go: Xenial comes with 1.6, but we need 1.7 or later
+# - nodejs: Xenial comes with 4.2.6 which exits LTS April 2018, so we're installing 6.x
#
FROM buildpack-deps:xenial-scm
@@ -138,10 +140,15 @@
`# GlibC dependencies` \
libglib2.0-dev
-RUN apt-get install -y --no-install-recommends \
-`# golang (go) dependencies` \
- golang-go \
- golang-race-detector-runtime
+# golang
+ENV GOLANG_VERSION 1.7.6
+ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
+ENV GOLANG_DOWNLOAD_SHA256 ad5808bf42b014c22dd7646458f631385003049ded0bb6af2efc7f1f79fa29ea
+RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
+ echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - && \
+ tar -C /usr/local -xzf golang.tar.gz && \
+ ln -s /usr/local/go/bin/go /usr/local/bin && \
+ rm golang.tar.gz
RUN apt-get install -y --no-install-recommends \
`# Haskell dependencies` \