mirror of Walter-Sparrow / lunar-tear
1FROM alpine:latest AS builder
2
3WORKDIR /usr/local/src
4COPY . .
5
6RUN apk add --no-cache \
7 protobuf \
8 protobuf-dev \
9 protoc \
10 make \
11 go \
12 libcap
13
14RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest &&\
15 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest &&\
16 go install github.com/pressly/goose/v3/cmd/goose@latest &&\
17 PATH="$PATH:$(go env GOPATH)/bin" make proto &&\
18 go build -o lunar-tear ./cmd/lunar-tear &&\
19 setcap cap_net_bind_service=+ep ./lunar-tear
20
21FROM alpine:latest
22
23WORKDIR /opt/lunar-tear
24
25RUN chown 1000:1000 /opt/lunar-tear
26
27USER 1000
28
29COPY --from=builder /usr/local/src/lunar-tear .
30COPY --from=builder /root/go/bin/goose /usr/local/bin/goose
31COPY --from=builder /usr/local/src/migrations ./migrations
32
33COPY entrypoint.sh .
34
35ENTRYPOINT /opt/lunar-tear/entrypoint.sh
36