Spaces:
Runtime error
Runtime error
| # ---------- Base image ----------------------------------------------------- | |
| FROM node:18-slim | |
| # ---------- OS packages ---------------------------------------------------- | |
| RUN apt-get update && apt-get install -y \ | |
| git python3 python3-pip build-essential \ | |
| libcairo2-dev libpango1.0-dev chromium curl \ | |
| && apt-get clean && rm -rf /var/lib/apt/lists/* | |
| # ---------- Environment ---------------------------------------------------- | |
| ENV PUPPETEER_SKIP_DOWNLOAD=true \ | |
| PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \ | |
| CHROMA_SERVER_CORS_ALLOW_ORIGINS='["*"]' \ | |
| PORT=7860 \ | |
| FLOWISE_USERNAME=admin \ | |
| FLOWISE_PASSWORD=admin \ | |
| DATABASE_PATH=/data/.flowise \ | |
| LOG_PATH=/data/.flowise/logs \ | |
| TEMP_UPLOAD_DIR=/data/uploads \ | |
| CHROMA_URL=http://localhost:8000 | |
| # ---------- Node & Python deps -------------------------------------------- | |
| RUN npm install -g flowise@3.0.0 | |
| # Chroma server 1.x (compatible with Flowise v2 API) | |
| RUN pip3 install numpy==1.26.4 --break-system-packages \ | |
| && pip3 install chromadb==1.0.9 --break-system-packages # provides `chroma` CLI v2 | |
| # ---------- Prevent Flowise early-log crash ------------------------------- | |
| RUN mkdir -p /usr/local/lib/node_modules/flowise/logs \ | |
| && chmod -R 777 /usr/local/lib/node_modules/flowise | |
| # ---------- Persistent data directories ----------------------------------- | |
| WORKDIR /data | |
| RUN mkdir -p /data/.flowise/logs /data/.flowise/storage /data/uploads /data/chroma \ | |
| && chmod -R 777 /data \ | |
| && chown -R 1000:1000 /data | |
| ENV PATH=$PATH:/home/node/.local/bin:/usr/local/bin:/root/.local/bin | |
| USER 1000:1000 | |
| # ---------- Expose ports --------------------------------------------------- | |
| EXPOSE 7860 8000 | |
| # ---------- Start: Chroma ➜ wait ➜ Flowise --------------------------------- | |
| CMD sh -c 'set -x; \ | |
| chroma run \ | |
| --path /data/chroma \ | |
| --host 0.0.0.0 \ | |
| --port 8000 \ | |
| & \ | |
| echo "--- Waiting for Chroma API ---"; \ | |
| while ! curl -v http://localhost:8000/api/v2/heartbeat; do \ | |
| echo "[DEBUG] Chroma not ready yet. Retrying..."; \ | |
| netstat -tulnp || ss -tulnp || true; \ | |
| sleep 1; \ | |
| done; \ | |
| echo "--- Chroma API is up ---"; \ | |
| echo "[DEBUG] Testing Chroma collections endpoint:"; \ | |
| curl -v http://localhost:8000/api/v2/collections || true; \ | |
| echo "[DEBUG] Environment variables:"; \ | |
| printenv | grep CHROMA || true; \ | |
| echo "[DEBUG] Process list:"; \ | |
| ps aux; \ | |
| echo "[DEBUG] Flowise will start now."; \ | |
| npx flowise start' |