sandbox-notebookllamalm-nextjs/backend/Dockerfile
Vadym Samoilenko 4608ca3c5e Add Docker migration: Dockerfiles, compose config, and deployment scripts
- backend/Dockerfile: Python 3.13-slim with uv, ffmpeg, psycopg2
- frontend/Dockerfile: multi-stage Node 22 build with standalone output
- docker-compose.yml: add backend/frontend services with named volumes
- backend/.dockerignore, frontend/.dockerignore: exclude build artifacts
- audio.py: write podcasts to PODCAST_DATA_DIR env var (default: conversations/)
- background_tasks.py: handle .md files directly without LlamaParse
- pyproject.toml: add python-pptx, weasyprint, matplotlib deps
- page.tsx: add Markdown to supported file types hint
- scripts/1_backup.sh: pg_dump + tar files + Docker volume backup
- scripts/2_deploy.sh: full systemd→Docker migration with health checks
- scripts/3_cleanup.sh: post-migration cleanup of build artifacts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 21:34:59 +00:00

24 lines
579 B
Docker

FROM python:3.13-slim
# ffmpeg for audio processing + build deps for psycopg2
RUN apt-get update && apt-get install -y ffmpeg libpq-dev gcc && \
rm -rf /var/lib/apt/lists/*
# uv package manager
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
WORKDIR /app
# Dependencies (cached separately from code)
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev
# Source code
COPY src/ ./src/
# Data directories
RUN mkdir -p conversations failed_uploads
EXPOSE 9000
CMD ["uv", "run", "uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "9000"]