# Use the official Python image from Docker Hub FROM python:3.10-slim # Install system dependencies RUN apt-get update && \ apt-get install -y --no-install-recommends \ cmake \ build-essential \ libssl-dev \ && rm -rf /var/lib/apt/lists/* # Set the working directory WORKDIR /app # Copy requirements and install COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy the application code COPY app.py . # Copy the preprocessing script COPY create_index.py . # Expose the port Dash will run on EXPOSE 7860 # Example of using a build-time secret RUN --mount=type=secret,id=MATERIALS_PROJECT_API_KEY \ echo "Using secret during build" # Create the cache directory and set permissions RUN mkdir -p /app/.cache && chmod -R 777 /app/.cache # Create the index RUN --mount=type=secret,id=HF_TOKEN \ HF_TOKEN=$(cat /run/secrets/HF_TOKEN) python create_index.py # Set an environment variable for Hugging Face cache ENV HF_HOME=/app/.cache # Run the app CMD ["python", "app.py"]