# Use Python 3.11 slim image for smaller size FROM python:3.13-slim # Set environment variables ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 ENV DEBIAN_FRONTEND=noninteractive # Set work directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ gcc \ g++ \ libffi-dev \ libssl-dev \ curl \ wget \ git \ && rm -rf /var/lib/apt/lists/* # Copy requirements first for better caching COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt && \ pip install --no-cache-dir jupyter jupyterlab # Copy the entire project COPY . . # Create necessary directories RUN mkdir -p logs data models # Set permissions RUN chmod +x demo.py finrl_demo.py docker-entrypoint.sh # Expose port for potential web interface EXPOSE 8000 8888 # Set entrypoint ENTRYPOINT ["/app/docker-entrypoint.sh"] # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD python -c "import sys; sys.exit(0)" || exit 1 # Default command CMD ["python", "-m", "agentic_ai_system.main"]