# Use Python base image FROM python:3.10-slim # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Install MLflow and its dependencies RUN pip install --no-cache-dir \ mlflow==2.20.1 \ scikit-learn \ pandas \ numpy # Create data directories RUN mkdir -p /data/mlruns /data/mlflow-db # Set permissions for /data directory RUN chmod -R 777 /data # Set environment variables ENV MLFLOW_TRACKING_URI=file:///data/mlruns ENV BACKEND_STORE_URI=sqlite:///data/mlflow-db/mlflow.db ENV ARTIFACT_ROOT=/data/mlruns # Expose port 7860 (default port for Hugging Face Spaces) EXPOSE 7860 # Create startup script RUN echo '#!/bin/bash\n\ mkdir -p /data/mlruns /data/mlflow-db\n\ chmod -R 777 /data\n\ mlflow server \ --host 0.0.0.0 \ --port 7860 \ --backend-store-uri ${BACKEND_STORE_URI} \ --default-artifact-root ${ARTIFACT_ROOT}' > /start.sh \ && chmod +x /start.sh # Set the entrypoint ENTRYPOINT ["/start.sh"]