FROM rust:1.90-slim-bookworm AS builder
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY src ./src
RUN cargo build --release --no-default-features --features server

FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates curl unzip \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /app/target/release/geodude /app/geodude
COPY entrypoint.sh /app/entrypoint.sh
COPY refresh-db.sh /app/refresh-db.sh
RUN chmod +x /app/entrypoint.sh /app/refresh-db.sh
ENV IP2LOCATION_BIN_PATH=/data/ip2location.BIN
EXPOSE 8080
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["/app/geodude"]
