FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ cmake \ ffmpeg \ libsndfile1 \ && rm -rf /var/lib/apt/lists/* COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app COPY pyproject.toml uv.lock .python-version README.md models.yaml voice_models.yaml ./ COPY apps/gradio-space/pyproject.toml apps/gradio-space/README.md apps/gradio-space/ COPY libs/inference/pyproject.toml libs/inference/README.md libs/inference/ COPY libs/agent/pyproject.toml libs/agent/README.md libs/agent/ COPY libs/echocoach/pyproject.toml libs/echocoach/README.md libs/echocoach/ COPY libs/researchmind/pyproject.toml libs/researchmind/README.md libs/researchmind/ COPY apps/gradio-space/src apps/gradio-space/src COPY apps/gradio-space/static apps/gradio-space/static COPY libs/inference/src libs/inference/src COPY libs/agent/src libs/agent/src COPY libs/echocoach/src libs/echocoach/src COPY libs/researchmind/src libs/researchmind/src COPY skills skills RUN useradd -m -u 1000 user && \ uv sync --frozen --no-dev --package gradio-space && \ chown -R user:user /app USER user ENV HOME=/home/user \ PATH="/app/.venv/bin:$PATH" \ AGENT_OUTPUTS_DIR=/tmp/agent_outputs \ AGENT_TRACES_DIR=/tmp/agent_traces RUN mkdir -p /tmp/agent_outputs /tmp/agent_traces EXPOSE 7860 CMD ["uv", "run", "--package", "gradio-space", "python", "-m", "gradio_space.app"]