# Base stage: Install common dependencies FROM python:3.10-slim AS base # Set working directory and environment variables WORKDIR /usr/src/app ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 # Copy only necessary files COPY pyproject.toml ./ COPY requirements.txt ./ # Install system and Python dependencies in a single layer RUN apt-get update && \ apt-get install -y --no-install-recommends \ build-essential \ gcc \ libssl-dev && \ pip install --no-cache-dir --upgrade pip setuptools setuptools-scm && \ rm -rf /var/lib/apt/lists/* # Install base project RUN pip install -r requirements.txt # Copy project files COPY autorag /usr/src/app/autorag COPY main.py /usr/src/app/main.py COPY making.sh /usr/src/app/making.sh COPY entrypoint.sh /usr/src/app/entrypoint.sh # Set permissions for entrypoint RUN chmod +x /usr/src/app/entrypoint.sh # Use entrypoint.sh as the container entrypoint ENTRYPOINT ["/usr/src/app/entrypoint.sh"] # Set a default command (optional, can be overridden) CMD ["bash"]