Spaces:
Running
Running
# 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"] | |