# dockerfile for agent email layer
FROM python:3.11-slim

WORKDIR /app

# install system dependencies
RUN apt-get update && apt-get install -y \
    gcc \
    && rm -rf /var/lib/apt/lists/*

# install python dependencies (agent email layer is standalone)
RUN pip install --no-cache-dir \
    pydantic>=2.0.0 \
    httpx>=0.24.0 \
    uvicorn>=0.20.0 \
    fastapi \
    sqlalchemy \
    asyncpg

# create synqed package structure
RUN mkdir -p synqed && touch synqed/__init__.py

# copy only the agent email layer (standalone, doesn't depend on core synqed)
COPY src/synqed/agent_email/ ./synqed/agent_email/

# expose port
EXPOSE 8080

# set environment variables
ENV PORT=8080
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app

# health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
    CMD python -c "import httpx; httpx.get('http://localhost:8080/health')"

# run server
CMD uvicorn synqed.agent_email.main:app --host 0.0.0.0 --port $PORT

