blob: 994c394c55743924feec461d674f815b7b3259bf [file] [log] [blame]
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"]