# Copyright 2017 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
FROM golang:1.8
LABEL maintainer "golang-dev@googlegroups.com"

RUN go get -d golang.org/x/oauth2 && \
    cd /go/src/golang.org/x/oauth2 && git reset --hard 314dd2c0bf3ebd592ec0d20847d27e79d0dbe8dd

RUN go get -d golang.org/x/net/context && \
    cd /go/src/golang.org/x/net && git reset --hard 5602c733f70afc6dcec6766be0d5034d4c4f14de

RUN go get -d github.com/google/go-github/github && \
    cd /go/src/github.com/google/go-github && git reset --hard 6896997c7c9fe603fb9d2e8e92303bb18481e60a

RUN go get -d github.com/gregjones/httpcache && \
    cd /go/src/github.com/gregjones/httpcache && git reset --hard d02018f006d98f58512bf3adfc171d88d17626df

RUN go get -d go4.org/types && \
    cd /go/src/go4.org && git reset --hard 7ce08ca145dbe0e66a127c447b80ee7914f3e4f9

RUN go get -d golang.org/x/sync/errgroup && \
    cd /go/src/golang.org/x/sync && git reset --hard 5a06fca2c336a4b2b2fcb45702e8c47621b2aa2c

RUN go get -d github.com/golang/protobuf/proto && \
    cd /go/src/github.com/golang/protobuf && git reset --hard 2bba0603135d7d7f5cb73b2125beeda19c09f4ef

RUN go get -d cloud.google.com/go/storage && \
    cd /go/src/cloud.google.com/go && git reset --hard 2f1da5d762c81a12c516bfb8a9ede96f42750361

RUN go get golang.org/x/crypto/acme/autocert && \
    cd /go/src/golang.org/x/crypto && git reset --hard c7af5bf2638a1164f2eb5467c39c6cffbd13a02e

RUN go get go4.org/grpc && \
    cd /go/src/go4.org/grpc && git reset --hard 32ab3eb96f50a8c0f4103aa8d149cd1f15576636

# Optimization to speed COPY+go install steps later. This go install
# isn't required for correctness.
RUN go install golang.org/x/oauth2 \
        golang.org/x/net/context \
        github.com/google/go-github/github \
        github.com/gregjones/httpcache \
        go4.org/types \
        golang.org/x/sync/errgroup \
        github.com/golang/protobuf/proto \
        cloud.google.com/go/storage \
        golang.org/x/crypto/acme/autocert

COPY . /go/src/golang.org/x/build/

RUN go install -ldflags "-linkmode=external -extldflags '-static -pthread'" golang.org/x/build/maintner/maintnerd
