# Python 3.11 slim (nhẹ, ít file)
FROM python:3.11-slim

# Thư mục làm việc
WORKDIR /app

ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1

# Copy requirements rồi cài package
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy code
COPY . .

# Mở port (sẽ được override bởi docker-compose)
EXPOSE 5004

# Chạy uvicorn với auto workers (2 * CPU cores + 1)
CMD ["sh", "-c", "uvicorn server:app --host 0.0.0.0 --port ${PORT:-5004} --workers $(( $(nproc) * 2 + 1 ))"]