FROM python:3.10-slim AS builder ENV PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=off \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 RUN apt-get update && apt-get install -y \ ffmpeg \ libsndfile1 \ git \ build-essential \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -s /bin/bash -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" WORKDIR /app COPY --chown=user requirements.txt ./ RUN python -m venv /app/venv ENV PATH="/app/venv/bin:$PATH" RUN pip install --upgrade pip RUN pip install -r requirements.txt COPY --chown=user setup_imagebind.py README.md ./ RUN python setup_imagebind.py RUN pip install . FROM python:3.10-slim AS runtime ENV PYTHONUNBUFFERED=1 \ PATH="/app/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \ APP_USER="user" RUN apt-get update && apt-get install -y \ ffmpeg \ libsndfile1 \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -s /bin/bash -u 1000 ${APP_USER} USER ${APP_USER} WORKDIR /app COPY --from=builder --chown=${APP_USER} /app/venv /app/venv COPY --chown=${APP_USER} main.py . EXPOSE 7860 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]