# Use Python 3.12 as base image FROM python:3.12-slim # Set working directory WORKDIR /app # Set environment variables ENV PYTHONPATH=/app ENV PYTHONUNBUFFERED=1 ENV DEBIAN_FRONTEND=noninteractive # Install system dependencies RUN apt-get update && apt-get install -y \ curl \ gcc \ g++ \ pkg-config \ default-libmysqlclient-dev \ && rm -rf /var/lib/apt/lists/* # Copy requirements file COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Create necessary directories RUN mkdir -p /app/logs /app/config /app/data # Set permissions RUN chmod +x /app/start.sh # Create non-root user RUN groupadd -r doris && useradd -r -g doris doris RUN chown -R doris:doris /app USER doris # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:3000/health || exit 1 # Expose ports EXPOSE 3000 3001 3002 # Start command CMD ["/app/start.sh"]