FROM rust:1.90.0-slim-trixie AS builder
# These are used by build.rs to embed telemetry configuration.
# You can override them during the build process, e.g.:
# docker build --build-arg POSTHOG_API_KEY="your_key"
ARG POSTHOG_API_KEY="phc_abcdefg"
ARG POSTHOG_API_HOST="https://eu.i.posthog.com"
ARG ZOI_DEFAULT_REGISTRY="https://gitlab.com/Zillowe/Zillwen/Zusty/Zoidberg.git"
ARG ZOI_AUTHORITIES_KEY_1="842293159C4B03357C8328D3A75793A3E674252E"
ARG ZOI_AUTHORITIES_KEY_2=""
RUN apt-get update && apt-get install -y build-essential pkg-config libssl-dev git && rm -rf /var/lib/apt/lists/*
# Set the working directory.
WORKDIR /usr/src/app
RUN echo "POSTHOG_API_KEY=${POSTHOG_API_KEY}" > .env
RUN echo "POSTHOG_API_HOST=${POSTHOG_API_HOST}" >> .env
RUN echo "ZOI_DEFAULT_REGISTRY=${ZOI_DEFAULT_REGISTRY}" >> .env
RUN echo "ZOI_AUTHORITIES_KEY_1=${ZOI_AUTHORITIES_KEY_1}" >> .env
RUN echo "ZOI_AUTHORITIES_KEY_2=${ZOI_AUTHORITIES_KEY_2}" >> .env
COPY Cargo.toml Cargo.lock ./
COPY .cargo ./.cargo
COPY build.rs ./
COPY src ./src
RUN cargo build --bin zoi --release
FROM debian:trixie-slim
RUN apt-get update && apt-get install -y git ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/app/target/release/zoi /usr/local/bin/zoi
RUN groupadd -r zoi && useradd -r -g zoi -s /bin/bash -d /home/zoi zoi && \
mkdir -p /home/zoi/.zoi && \
chown -R zoi:zoi /home/zoi
USER zoi
WORKDIR /home/zoi
ENTRYPOINT ["zoi"]
CMD ["--help"]