FROM docker.io/golang:1.26-alpine AS build

RUN apk add --no-cache upx ca-certificates

WORKDIR /src
COPY . ./
RUN go mod download
RUN --mount=type=cache,target=/root/.cache/go-build \
go build -ldflags="-s" -o /bin/main ./cmd/web
RUN upx -9 -k /bin/main

FROM litestream/litestream:latest AS litestream

FROM scratch
ENV PORT=9001
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=litestream /usr/local/bin/litestream /usr/local/bin/litestream
COPY litestream.yml /etc/litestream.yml
COPY --from=build /bin/main /
ENTRYPOINT ["/usr/local/bin/litestream", "replicate", "-exec", "/main"]
