| # 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:latest as builder |
| |
| # Because alpine is used below... TODO: just use Debian below and re-enable this? |
| ENV CGO_ENABLED=0 |
| |
| ENV GO111MODULE=on |
| ENV GOPROXY=https://proxy.golang.org |
| |
| RUN mkdir /gocache |
| ENV GOCACHE /gocache |
| |
| COPY go.mod /go/src/golang.org/x/build/go.mod |
| COPY go.sum /go/src/golang.org/x/build/go.sum |
| |
| WORKDIR /go/src/golang.org/x/build |
| |
| # Optimization for iterative docker build speed, not necessary for correctness: |
| # TODO: write a tool to make writing Go module-friendly Dockerfiles easier. |
| RUN go install cloud.google.com/go/compute/metadata |
| RUN go install github.com/google/go-github/v48/github |
| RUN go install golang.org/x/oauth2 |
| COPY autocertcache /go/src/golang.org/x/build/autocertcache |
| COPY gerrit /go/src/golang.org/x/build/gerrit |
| COPY maintner /go/src/golang.org/x/build/maintner |
| COPY internal /go/src/golang.org/x/build/internal |
| COPY cmd/pubsubhelper/pubsubtypes /go/src/golang.org/x/build/cmd/pubsubhelper/pubsubtypes |
| RUN go install golang.org/x/build/gerrit |
| RUN go install golang.org/x/build/internal/https |
| RUN go install golang.org/x/build/maintner |
| RUN go install golang.org/x/build/maintner/godata |
| |
| COPY . /go/src/golang.org/x/build/ |
| RUN go install golang.org/x/build/cmd/gerritbot |
| |
| FROM alpine |
| LABEL maintainer="golang-dev@googlegroups.com" |
| # See https://github.com/golang/go/issues/23705 for why tini is needed |
| RUN apk add --no-cache git tini |
| RUN git config --global user.email "letsusegerrit@gmail.com" |
| RUN git config --global user.name "GerritBot" |
| RUN git config --global http.cookiefile "/gitcookies" |
| COPY --from=builder /go/bin/gerritbot / |
| ENTRYPOINT ["/sbin/tini", "--", "/gerritbot"] |