| FROM golang:1.12 AS build |
| |
| 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 golang.org/x/crypto/acme/autocert |
| RUN go install cloud.google.com/go/storage |
| COPY autocertcache /go/src/golang.org/x/build/autocertcache |
| RUN go install golang.org/x/build/autocertcache |
| |
| COPY . /go/src/golang.org/x/build/ |
| # Install binary to /go/bin: |
| RUN go install golang.org/x/build/cmd/tip |
| |
| FROM golang:1.12 |
| |
| RUN apt-get update && apt-get install --no-install-recommends -y -q build-essential git |
| # golang puts its go install here (weird but true) |
| ENV GOROOT_BOOTSTRAP /usr/local/go |
| |
| # We listen on 8080 (for historical reasons). The service.yaml maps public port 80 to 8080. |
| # We also listen on 443 for LetsEncrypt TLS. |
| EXPOSE 8080 443 |
| |
| COPY --from=build /go/bin/tip /go/bin/tip |
| ENTRYPOINT ["/go/bin/tip"] |