FROM python:3.10-slim # Install system dependencies in a single layer RUN apt-get update && apt-get install -y \ git \ build-essential \ wget \ curl \ bash \ muscle \ hmmer \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean # Set working directory WORKDIR /app # Install Python dependencies in a single layer for better caching RUN pip install --no-cache-dir \ gradio==4.44.0 \ transformers==4.36.0 \ torch==2.1.0 \ numpy==1.24.0 \ pandas==2.0.0 \ einops==0.7.0 \ rotary-embedding-torch==0.8.9 \ huggingface-hub>=0.19.0 # Clone and install ANARCI in a single layer RUN git clone --depth 1 https://github.com/oxpig/ANARCI.git && \ cd ANARCI && \ pip install . && \ cd .. && \ rm -rf ANARCI # Copy application files COPY app.py . COPY adapter.py . # Expose port for Gradio EXPOSE 7860 # Set environment variables ENV GRADIO_SERVER_NAME=0.0.0.0 ENV GRADIO_SERVER_PORT=7860 # Run the application CMD ["python", "app.py"]