FROM alpine:3.20 AS code-cloner

WORKDIR /src
RUN apk add --no-cache git
RUN git clone --depth 1 https://github.com/Revertron/Alfis.git

FROM rust:slim-bullseye AS builder

RUN apt-get update \
    && apt-get install -y --no-install-recommends pkg-config libcairo2-dev ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY --from=code-cloner /src/Alfis /src
WORKDIR /src
RUN cargo build --release --no-default-features --features="doh"

FROM debian:bullseye-slim

RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates libcairo2 \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /src/target/release/alfis /alfis
COPY --from=builder /src/alfis.toml /storage/alfis.toml

EXPOSE 4244/tcp
EXPOSE 53/tcp
EXPOSE 53/udp

WORKDIR /storage
VOLUME ["/storage"]
CMD ["/alfis", "-c", "/storage/alfis.toml"]
