# build sqld
FROM rust:slim-bullseye as builder
RUN apt update

RUN apt install -y libclang-dev clang \
        build-essential tcl protobuf-compiler file \
        libssl-dev pkg-config

RUN apt clean
RUN update-ca-certificates

WORKDIR /sqld
COPY . .
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/usr/local/cargo/git \
    --mount=type=cache,target=/sqld/target \
    cargo build -p libsql-server --release && \
    cp target/release/sqld /sqld/bin


# runtime
FROM debian:bullseye-slim
RUN apt update

COPY --from=builder /sqld/bin /bin/sqld
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY docker-entrypoint.sh /usr/local/bin

VOLUME [ "/var/lib/sqld" ]

RUN groupadd --system --gid 666 sqld
RUN adduser --system --home /var/lib/sqld --uid 666 --gid 666 sqld
USER sqld
WORKDIR /var/lib/sqld

EXPOSE 5001 8080

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/bin/sqld"]