FROM golang:latest as builder-base WORKDIR /app COPY go.mod /app/go.mod COPY go.sum /app/go.sum RUN go mod download COPY . /app RUN CGO_ENABLED=0 go build -tags allcerts -o ezshare cmd/ezshare.go FROM builder-base as certs VOLUME ["/data"] CMD ["/app/scripts/gencerts.sh"] FROM builder-base as cross-compiler VOLUME ["/data"] CMD ["/app/scripts/cross-compile.sh"] FROM alpine:latest COPY --from=builder-base /app/ezshare /usr/bin/ezshare EXPOSE 50051 EXPOSE 8088 CMD ["/usr/bin/ezshare", "serve"]