| |
| FROM node:20-alpine AS frontend-builder |
| WORKDIR /app/frontend |
| COPY frontend/package.json frontend/package-lock.json ./ |
| RUN npm install |
| COPY frontend/ ./ |
| RUN npm run build |
|
|
| |
| FROM python:3.12-slim |
|
|
| |
| COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ |
|
|
| |
| RUN useradd -m -u 1000 user |
|
|
| WORKDIR /app |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| git \ |
| curl \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY pyproject.toml uv.lock ./ |
|
|
| |
| |
| RUN uv sync --no-dev --frozen |
|
|
| |
| COPY agent/ ./agent/ |
| COPY backend/ ./backend/ |
| COPY configs/ ./configs/ |
|
|
| |
| COPY --from=frontend-builder /app/frontend/dist ./static/ |
|
|
| |
| RUN mkdir -p /app/session_logs && \ |
| chown -R user:user /app |
|
|
| |
| USER user |
|
|
| |
| ENV HOME=/home/user \ |
| PYTHONUNBUFFERED=1 \ |
| PYTHONPATH=/app \ |
| PATH="/app/.venv/bin:$PATH" |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| WORKDIR /app/backend |
| CMD ["bash", "start.sh"] |
|
|