31 lines
781 B
Docker
31 lines
781 B
Docker
FROM golang:1.10-alpine as builder
|
|
RUN apk add --no-cache ca-certificates git
|
|
WORKDIR /go/src/frontend
|
|
|
|
# fetch known dependencies for caching
|
|
RUN go get -d github.com/google/uuid \
|
|
github.com/gorilla/mux \
|
|
github.com/pkg/errors \
|
|
google.golang.org/grpc \
|
|
google.golang.org/grpc/codes \
|
|
google.golang.org/grpc/status
|
|
|
|
# copy go-only part of the build
|
|
COPY *.go ./
|
|
COPY ./genproto ./genproto
|
|
COPY ./money ./money
|
|
|
|
# fetch other dependencies might not have listed above (ideally noop)
|
|
RUN go get -d ./...
|
|
RUN go install .
|
|
|
|
# ---
|
|
|
|
FROM alpine as release
|
|
RUN apk add --no-cache ca-certificates
|
|
WORKDIR /frontend
|
|
COPY --from=builder /go/bin/frontend /frontend/server
|
|
COPY ./templates ./templates
|
|
COPY ./static ./static
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/frontend/server"]
|