FROM python:3.11 # 1. System dependencies (curl, zstd, zsh) RUN apt-get update && apt-get install -y \ curl \ zstd \ zsh \ git \ && rm -rf /var/lib/apt/lists/* # 2. Install Ollama RUN curl -fsSL https://ollama.com/install.sh | sh # 3. User Setup RUN useradd -m -u 1000 user ENV USER=user ENV HOME=/home/user ENV PATH="$HOME/.local/bin:$PATH" ENV OLLAMA_KEEP_ALIVE=5m # 4. Workdir WORKDIR $HOME/app # 5. Switch to non-root user USER user # 6. Install Python Libraries RUN pip install --no-cache-dir fastapi uvicorn ollama # 7. Copy project files COPY --chown=user . . # 8. Entrypoint permission RUN chmod +x entrypoint.sh # 9. Expose Port EXPOSE 7860 # 10. Default shell (zsh) SHELL ["/bin/zsh", "-c"] CMD ["./entrypoint.sh"]