Signed-off-by: Jessica Frazelle <acidburn@docker.com>
| ... | ... |
@@ -84,15 +84,9 @@ RUN cd /usr/src/lxc \ |
| 84 | 84 |
|
| 85 | 85 |
# Install Go |
| 86 | 86 |
ENV GO_VERSION 1.5.1 |
| 87 |
-RUN curl -sSL https://golang.org/dl/go1.4.3.src.tar.gz | tar -v -C /usr/local -xz \ |
|
| 88 |
- && cd /usr/local/ && mv go go1.4.3 |
|
| 89 |
-RUN cd /usr/local/go1.4.3/src/ && ./make.bash |
|
| 90 |
-ENV GOROOT_BOOTSTRAP /usr/local/go1.4.3 |
|
| 91 |
-RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/local -xz \
|
|
| 92 |
- && mkdir -p /go/bin |
|
| 87 |
+RUN curl -sSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar -v -C /usr/local -xz
|
|
| 93 | 88 |
ENV PATH /go/bin:/usr/local/go/bin:$PATH |
| 94 | 89 |
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor |
| 95 |
-RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1 |
|
| 96 | 90 |
|
| 97 | 91 |
# Compile Go for cross compilation |
| 98 | 92 |
ENV DOCKER_CROSSPLATFORMS \ |
| ... | ... |
@@ -103,13 +97,6 @@ ENV DOCKER_CROSSPLATFORMS \ |
| 103 | 103 |
|
| 104 | 104 |
# (set an explicit GOARM of 5 for maximum compatibility) |
| 105 | 105 |
ENV GOARM 5 |
| 106 |
-RUN cd /usr/local/go/src \ |
|
| 107 |
- && set -x \ |
|
| 108 |
- && for platform in $DOCKER_CROSSPLATFORMS; do \ |
|
| 109 |
- GOOS=${platform%/*} \
|
|
| 110 |
- GOARCH=${platform##*/} \
|
|
| 111 |
- ./make.bash --no-clean 2>&1; \ |
|
| 112 |
- done |
|
| 113 | 106 |
|
| 114 | 107 |
# This has been commented out and kept as reference because we don't support compiling with older Go anymore. |
| 115 | 108 |
# ENV GOFMT_VERSION 1.3.3 |
| ... | ... |
@@ -14,7 +14,7 @@ if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARC |
| 14 | 14 |
windows/amd64) |
| 15 | 15 |
export CC=x86_64-w64-mingw32-gcc |
| 16 | 16 |
export CGO_ENABLED=1 |
| 17 |
- export LDFLAGS_STATIC_DOCKER="${LDFLAGS_STATIC_DOCKER/-linkmode external/} -extld=${CC}"
|
|
| 17 |
+ export LDFLAGS_STATIC_DOCKER="${LDFLAGS_STATIC_DOCKER/-linkmode external/-linkmode internal} -extld=${CC}"
|
|
| 18 | 18 |
;; |
| 19 | 19 |
esac |
| 20 | 20 |
fi |
| ... | ... |
@@ -74,20 +74,26 @@ func ParseTCPAddr(tryAddr string, defaultAddr string) (string, error) {
|
| 74 | 74 |
return "", fmt.Errorf("Invalid proto, expected tcp: %s", tryAddr)
|
| 75 | 75 |
} |
| 76 | 76 |
|
| 77 |
- u, err := url.Parse("tcp://" + addr)
|
|
| 77 |
+ defaultAddr = strings.TrimPrefix(defaultAddr, "tcp://") |
|
| 78 |
+ defaultHost, defaultPort, err := net.SplitHostPort(defaultAddr) |
|
| 78 | 79 |
if err != nil {
|
| 79 | 80 |
return "", err |
| 80 | 81 |
} |
| 82 |
+ // url.Parse fails for trailing colon on IPv6 brackets on Go 1.5, but |
|
| 83 |
+ // not 1.4. See https://github.com/golang/go/issues/12200 and |
|
| 84 |
+ // https://github.com/golang/go/issues/6530. |
|
| 85 |
+ if strings.HasSuffix(addr, "]:") {
|
|
| 86 |
+ addr += defaultPort |
|
| 87 |
+ } |
|
| 81 | 88 |
|
| 82 |
- host, port, err := net.SplitHostPort(u.Host) |
|
| 89 |
+ u, err := url.Parse("tcp://" + addr)
|
|
| 83 | 90 |
if err != nil {
|
| 84 |
- return "", fmt.Errorf("Invalid bind address format: %s", tryAddr)
|
|
| 91 |
+ return "", err |
|
| 85 | 92 |
} |
| 86 | 93 |
|
| 87 |
- defaultAddr = strings.TrimPrefix(defaultAddr, "tcp://") |
|
| 88 |
- defaultHost, defaultPort, err := net.SplitHostPort(defaultAddr) |
|
| 94 |
+ host, port, err := net.SplitHostPort(u.Host) |
|
| 89 | 95 |
if err != nil {
|
| 90 |
- return "", err |
|
| 96 |
+ return "", fmt.Errorf("Invalid bind address format: %s", tryAddr)
|
|
| 91 | 97 |
} |
| 92 | 98 |
|
| 93 | 99 |
if host == "" {
|