
FROM linuxcontainers/debian-slim AS backup_inference_server

# Install Ollama (official method)
RUN apt-get update && apt-get install -y curl ca-certificates zstd && \
    curl -fsSL https://ollama.com/install.sh | sh

FROM python:3.12-slim AS python_artifact

# Copy Package Source.
COPY /src /app/src

COPY pyproject.toml LICENSE README.md  /app/

RUN python3 -m venv /opt/venv

RUN /opt/venv/bin/python -m pip install --no-cache-dir ./app/

FROM python:3.12-slim AS application

COPY --from=python_artifact /opt/venv/ /opt/venv

COPY --from=backup_inference_server /usr/local/bin/ollama /usr/local/bin/ollama

# Expose Port for Gradio
EXPOSE 7860

ENV PATH="/opt/venv/bin:$PATH"

# --entrypoint optional. 'example' is name of demo plugin. '-m cuzco' runs a 'LanguageModelAgentGenerator' with defualt settings.
ENTRYPOINT [ "python", "-m", "cuzco", "--entrypoint", "example"]
