Spaces:
Running
Running
# Use an official Python runtime as a parent image | |
FROM python:3.10-slim | |
# Set the working directory in the container | |
WORKDIR /app | |
# Install necessary system dependencies | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends \ | |
unzip \ | |
git \ | |
# Add potential ITK/build dependencies (might need adjustment) | |
build-essential \ | |
cmake \ | |
libgl1 \ | |
libglib2.0-0 \ | |
# libitk5-dev # Removed: Rely on pip install of itk-elastix | |
&& \ | |
rm -rf /var/lib/apt/lists/* | |
# Copy the requirements file first to leverage Docker cache | |
COPY requirements.txt . | |
# Install Python packages specified in requirements.txt | |
# Using --no-cache-dir can reduce image size | |
RUN pip install --no-cache-dir -r requirements.txt | |
# --- HD-BET is now copied locally via src/BrainIAC --- | |
# Copy the rest of the application code (including local HD_BET) | |
COPY src/BrainIAC /app/BrainIAC | |
# Copy static files (like images) | |
COPY src/BrainIAC/static /app/BrainIAC/static | |
# Copy the MNI templates and parameter files | |
COPY src/BrainIAC/golden_image /app/BrainIAC/golden_image | |
# Copy the HD-BET models | |
COPY src/BrainIAC/hdbet_model /app/BrainIAC/hdbet_model | |
# Copy the model checkpoint | |
COPY src/BrainIAC/checkpoints/brainage_model_latest.pt /app/BrainIAC/checkpoints/brainage_model_latest.pt | |
# Make port 7860 available (for Gradio) | |
EXPOSE 7860 | |
# Run app_gradio.py when the container launches using python | |
CMD ["python", "/app/BrainIAC/app_gradio.py"] |