FROM python:3.11-slim # --- system deps: curl (bun installer), unzip, ca-certs --- RUN apt-get update && apt-get install -y --no-install-recommends \ curl unzip ca-certificates \ && rm -rf /var/lib/apt/lists/* # --- bun (for llm-bridge mini-service) --- ENV BUN_INSTALL=/usr/local/bun RUN curl -fsSL https://bun.sh/install | bash \ && ln -s /usr/local/bun/bin/bun /usr/local/bin/bun ENV PATH="/usr/local/bun/bin:${PATH}" WORKDIR /app # --- python deps first (better layer caching) --- COPY scp/requirements.txt /app/scp/requirements.txt RUN pip install --no-cache-dir -r /app/scp/requirements.txt # --- llm-bridge deps --- COPY mini-services/llm-bridge/package.json /app/mini-services/llm-bridge/package.json RUN cd /app/mini-services/llm-bridge && bun install # --- copy rest of the app (only what the backend + llm-bridge need) --- COPY scp /app/scp COPY mini-services /app/mini-services COPY .env.example /app/.env.example # --- runtime dirs --- RUN mkdir -p /app/scp/data /tmp/scp-logs # --- container-specific startup --- COPY hf_start.sh /app/hf_start.sh RUN chmod +x /app/hf_start.sh ENV SCP_HOST=0.0.0.0 ENV SCP_PORT=7860 ENV LLM_BRIDGE_URL=http://127.0.0.1:11434 ENV SCP_SKIP_STARTUP_GATE=1 EXPOSE 7860 CMD ["/app/hf_start.sh"]