1# Copyright 2018 The Go Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style
3# license that can be found in the LICENSE file.
4
5FROM golang:1.9
6LABEL maintainer "golang-dev@googlegroups.com"
7
8ENV CGO_ENABLED=0
9
10# BEGIN deps (run `make update-deps` to update)
11
12# Repo cloud.google.com/go at 1d0c2da (2018-01-30)
13ENV REV=1d0c2da40456a9b47f5376165f275424acc15c09
14RUN go get -d cloud.google.com/go/compute/metadata `#and 6 other pkgs` &&\
15    (cd /go/src/cloud.google.com/go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
16
17# Repo github.com/golang/protobuf at 9255415 (2018-01-25)
18ENV REV=925541529c1fa6821df4e44ce2723319eb2be768
19RUN go get -d github.com/golang/protobuf/proto `#and 6 other pkgs` &&\
20    (cd /go/src/github.com/golang/protobuf && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
21
22# Repo github.com/googleapis/gax-go at 317e000 (2017-09-15)
23ENV REV=317e0006254c44a0ac427cc52a0e083ff0b9622f
24RUN go get -d github.com/googleapis/gax-go &&\
25    (cd /go/src/github.com/googleapis/gax-go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
26
27# Repo go4.org at 034d17a (2017-05-25)
28ENV REV=034d17a462f7b2dcd1a4a73553ec5357ff6e6c6e
29RUN go get -d go4.org/syncutil/singleflight &&\
30    (cd /go/src/go4.org && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
31
32# Repo golang.org/x/build at 8aa9ee0 (2018-02-01)
33ENV REV=8aa9ee0e557fd49c14113e5ba106e13a5b455460
34RUN go get -d golang.org/x/build/autocertcache &&\
35    (cd /go/src/golang.org/x/build && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
36
37# Repo golang.org/x/crypto at 1875d0a (2018-01-27)
38ENV REV=1875d0a70c90e57f11972aefd42276df65e895b9
39RUN go get -d golang.org/x/crypto/acme `#and 2 other pkgs` &&\
40    (cd /go/src/golang.org/x/crypto && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
41
42# Repo golang.org/x/oauth2 at 30785a2 (2018-01-04)
43ENV REV=30785a2c434e431ef7c507b54617d6a951d5f2b4
44RUN go get -d golang.org/x/oauth2 `#and 5 other pkgs` &&\
45    (cd /go/src/golang.org/x/oauth2 && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
46
47# Repo golang.org/x/text at e19ae14 (2017-12-27)
48ENV REV=e19ae1496984b1c655b8044a65c0300a3c878dd3
49RUN go get -d golang.org/x/text/secure/bidirule `#and 4 other pkgs` &&\
50    (cd /go/src/golang.org/x/text && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
51
52# Repo google.golang.org/api at 7d0e2d3 (2018-01-30)
53ENV REV=7d0e2d350555821bef5a5b8aecf0d12cc1def633
54RUN go get -d google.golang.org/api/gensupport `#and 9 other pkgs` &&\
55    (cd /go/src/google.golang.org/api && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
56
57# Repo google.golang.org/genproto at 4eb30f4 (2018-01-25)
58ENV REV=4eb30f4778eed4c258ba66527a0d4f9ec8a36c45
59RUN go get -d google.golang.org/genproto/googleapis/api/annotations `#and 3 other pkgs` &&\
60    (cd /go/src/google.golang.org/genproto && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
61
62# Repo google.golang.org/grpc at 0bd008f (2018-01-25)
63ENV REV=0bd008f5fadb62d228f12b18d016709e8139a7af
64RUN go get -d google.golang.org/grpc `#and 23 other pkgs` &&\
65    (cd /go/src/google.golang.org/grpc && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
66
67# Optimization to speed up iterative development, not necessary for correctness:
68RUN go install cloud.google.com/go/compute/metadata \
69	cloud.google.com/go/iam \
70	cloud.google.com/go/internal \
71	cloud.google.com/go/internal/optional \
72	cloud.google.com/go/internal/version \
73	cloud.google.com/go/storage \
74	github.com/golang/protobuf/proto \
75	github.com/golang/protobuf/protoc-gen-go/descriptor \
76	github.com/golang/protobuf/ptypes \
77	github.com/golang/protobuf/ptypes/any \
78	github.com/golang/protobuf/ptypes/duration \
79	github.com/golang/protobuf/ptypes/timestamp \
80	github.com/googleapis/gax-go \
81	go4.org/syncutil/singleflight \
82	golang.org/x/build/autocertcache \
83	golang.org/x/crypto/acme \
84	golang.org/x/crypto/acme/autocert \
85	golang.org/x/oauth2 \
86	golang.org/x/oauth2/google \
87	golang.org/x/oauth2/internal \
88	golang.org/x/oauth2/jws \
89	golang.org/x/oauth2/jwt \
90	golang.org/x/text/secure/bidirule \
91	golang.org/x/text/transform \
92	golang.org/x/text/unicode/bidi \
93	golang.org/x/text/unicode/norm \
94	google.golang.org/api/gensupport \
95	google.golang.org/api/googleapi \
96	google.golang.org/api/googleapi/internal/uritemplates \
97	google.golang.org/api/googleapi/transport \
98	google.golang.org/api/internal \
99	google.golang.org/api/iterator \
100	google.golang.org/api/option \
101	google.golang.org/api/storage/v1 \
102	google.golang.org/api/transport/http \
103	google.golang.org/genproto/googleapis/api/annotations \
104	google.golang.org/genproto/googleapis/iam/v1 \
105	google.golang.org/genproto/googleapis/rpc/status \
106	google.golang.org/grpc \
107	google.golang.org/grpc/balancer \
108	google.golang.org/grpc/balancer/base \
109	google.golang.org/grpc/balancer/roundrobin \
110	google.golang.org/grpc/codes \
111	google.golang.org/grpc/connectivity \
112	google.golang.org/grpc/credentials \
113	google.golang.org/grpc/encoding \
114	google.golang.org/grpc/encoding/proto \
115	google.golang.org/grpc/grpclb/grpc_lb_v1/messages \
116	google.golang.org/grpc/grpclog \
117	google.golang.org/grpc/internal \
118	google.golang.org/grpc/keepalive \
119	google.golang.org/grpc/metadata \
120	google.golang.org/grpc/naming \
121	google.golang.org/grpc/peer \
122	google.golang.org/grpc/resolver \
123	google.golang.org/grpc/resolver/dns \
124	google.golang.org/grpc/resolver/passthrough \
125	google.golang.org/grpc/stats \
126	google.golang.org/grpc/status \
127	google.golang.org/grpc/tap \
128	google.golang.org/grpc/transport
129# END deps
130
131COPY . /go/src/golang.org/x/net/
132
133RUN go install -tags "h2demo netgo" -ldflags "-linkmode=external -extldflags '-static -pthread'" golang.org/x/net/http2/h2demo
134
135