# syntax=docker/dockerfile:1.7

FROM rust:1.93-alpine AS builder

WORKDIR /app

RUN apk add --no-cache musl-dev

COPY Cargo.toml Cargo.lock* ./
COPY src ./src

RUN cargo build --release

FROM alpine:3.22 AS runtime

RUN apk add --no-cache ca-certificates tini wget

WORKDIR /app

ENV NODE_ENV=production
ENV PORT=8081

COPY --from=builder /app/target/release/rule34-rust-api /app/rule34-rust-api

EXPOSE 8081

HEALTHCHECK CMD wget --no-verbose --spider "http://127.0.0.1:${PORT:-8081}/" || exit 1

ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/app/rule34-rust-api"]
