| | |
| | 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 --extra agent --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 ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |
| |
|