Files
Skeen-CRM/Dockerfile
root d30b22b50c feat: initial Skeen-CRM AI Agent architecture
- FastAPI + Python 3.12 backend
- Meta WhatsApp Business API client (official)
- OpenAI GPT-4o with function calling
- RAG vector store with pgvector
- ERPNext Frappe REST client
- Celery + Redis async task queue
- PostgreSQL with migrations (Alembic)
- Docker Compose full stack
- Enterprise logging, metrics, health checks
2026-04-29 05:30:59 +00:00

58 lines
1.6 KiB
Docker

# =============================================================================
# SKEEN CRM Agent - Production Dockerfile
# =============================================================================
FROM python:3.12-slim AS builder
# Install build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# Install uv (modern Python package manager)
RUN pip install --no-cache-dir uv
# Set workdir
WORKDIR /app
# Copy dependency definitions
COPY pyproject.toml ./
# Create virtual environment and install dependencies
RUN uv venv .venv && \
uv pip install --no-cache -r pyproject.toml
# =============================================================================
# Production stage
# =============================================================================
FROM python:3.12-slim AS production
# Install runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq5 \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create non-root user
RUN groupadd -r skeen && useradd -r -g skeen skeen
WORKDIR /app
# Copy virtual environment from builder
COPY --from=builder /app/.venv /app/.venv
ENV PATH="/app/.venv/bin:$PATH"
# Copy application code
COPY --chown=skeen:skeen src/ ./src/
COPY --chown=skeen:skeen alembic/ ./alembic/
COPY --chown=skeen:skeen alembic.ini ./
# Switch to non-root user
USER skeen
# Healthcheck
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1
EXPOSE 8000