FROM alpine:latest AS builder WORKDIR /usr/local/src COPY . . RUN apk add --no-cache \ protobuf \ protobuf-dev \ protoc \ make \ go \ libcap RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest &&\ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest &&\ PATH="$PATH:$(go env GOPATH)/bin" make proto &&\ go build -o octo-cdn ./cmd/octo-cdn &&\ setcap cap_net_bind_service=+ep ./octo-cdn FROM alpine:latest WORKDIR /opt/octo-cdn RUN chown 1000:1000 /opt/octo-cdn USER 1000 COPY --from=builder /usr/local/src/octo-cdn . ENTRYPOINT ["./octo-cdn"]