# Production Dockerfile for Talk2Me FROM python:3.10-slim # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ ffmpeg \ git \ && rm -rf /var/lib/apt/lists/* # Create non-root user RUN useradd -m -u 1000 talk2me # Set working directory WORKDIR /app # Copy requirements first for better caching COPY requirements.txt requirements-prod.txt ./ RUN pip install --no-cache-dir -r requirements-prod.txt # Copy application code COPY --chown=talk2me:talk2me . . # Create necessary directories RUN mkdir -p logs /tmp/talk2me_uploads && \ chown -R talk2me:talk2me logs /tmp/talk2me_uploads # Switch to non-root user USER talk2me # Set environment variables ENV FLASK_ENV=production \ PYTHONUNBUFFERED=1 \ UPLOAD_FOLDER=/tmp/talk2me_uploads \ LOGS_DIR=/app/logs # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:5005/health || exit 1 # Expose port EXPOSE 5005 # Run with gunicorn CMD ["gunicorn", "--config", "gunicorn_config.py", "wsgi:application"]