# 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.

# Note that OpenSSH 6.5+ is required for the Github SSH private key, which requires
# at least Debian Jessie (not Wheezy). This uses Jessie:
FROM golang:1.8
LABEL maintainer "golang-dev@googlegroups.com"

# todo(bradfitz): remove duplication between this and coordinator.
# Maybe make both derive FROM "golang_org:buildbase" or something. But
# then I want to make sure that FROM base is rebuilt always when things in
# x/build change.

# You can verify this list with prdeps:
# go get github.com/davecheney/prdeps
# prdeps -d 1 golang.org/x/build/cmd/coordinator

RUN go get -d cloud.google.com/go/compute/metadata
RUN cd /go/src/cloud.google.com/go/compute/metadata && git reset --hard cd0da878c66091060d2e7403abd62192b3e387e0
# Need to rerun because cd0da878 depends on gax-go and tip doesn't.
RUN go get -d -v cloud.google.com/go/compute/metadata

RUN go get -d golang.org/x/net/context golang.org/x/net/context/ctxhttp
RUN cd /go/src/golang.org/x/net && git reset --hard f2499483f923065a842d38eb4c7f1927e6fc6e6d

RUN cd /go/src/google.golang.org/grpc && git reset --hard 50955793b0183f9de69bd78e2ec251cf20aab121

COPY /cmd/gitmirror/install-apt-deps.sh /scripts/install-apt-deps.sh
RUN  /scripts/install-apt-deps.sh

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

RUN go install golang.org/x/build/cmd/gitmirror

ENTRYPOINT ["/go/bin/gitmirror"]
