FROM rust:1-bookworm AS builder RUN apt-get update \ && apt-get install -y --no-install-recommends cmake curl git python3 \ && rm -rf /var/lib/apt/lists/* WORKDIR /src COPY . . RUN cargo build --release --locked RUN ./factory/unix/build-whisper-backend.sh \ && ./unix/Install-Voice.sh /src FROM debian:bookworm-slim RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /opt/jackailocal COPY --from=builder /src/target/release/jackailocald ./bin/jackailocald COPY webui ./webui COPY config ./config COPY content ./content COPY content-packs ./content-packs COPY manifest ./manifest COPY --from=builder /src/backends/whisper.cpp/linux ./backends/whisper.cpp/linux COPY --from=builder /src/backends/piper/linux ./backends/piper/linux COPY --from=builder /src/models/whisper ./models/whisper COPY --from=builder /src/models/piper ./models/piper COPY deploy/appliance/entrypoint.sh /usr/local/bin/jackailocal-entrypoint RUN chmod +x /opt/jackailocal/bin/jackailocald /usr/local/bin/jackailocal-entrypoint \ && mkdir -p models/ollama models/gguf workspace/documents workspace/threads workspace/exports .jackailocal/logs ENV OLLAMA_HOST=http://ollama:11434 ENV OLLAMA_NO_CLOUD=true ENV RUST_LOG=info EXPOSE 4891 ENTRYPOINT ["/usr/local/bin/jackailocal-entrypoint"]