|
|
| FROM node:18-slim
|
|
|
|
|
| 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/*
|
|
|
|
|
| ENV PUPPETEER_SKIP_DOWNLOAD=true \
|
| PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \
|
| CHROMA_SERVER_CORS_ALLOW_ORIGINS='["*"]' \
|
| PORT=7860 \
|
| DATABASE_PATH=/data/.flowise \
|
| LOG_PATH=/data/.flowise/logs \
|
| TEMP_UPLOAD_DIR=/data/uploads \
|
| CHROMA_URL=http://localhost:8000
|
|
|
|
|
| RUN npm install -g flowise@3.0.0
|
|
|
|
|
| RUN pip3 install numpy==1.26.4 --break-system-packages \
|
| && pip3 install chromadb==1.0.9 --break-system-packages
|
|
|
|
|
| RUN mkdir -p /usr/local/lib/node_modules/flowise/logs \
|
| && chmod -R 777 /usr/local/lib/node_modules/flowise
|
|
|
|
|
| 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 7860 8000
|
|
|
|
|
| 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' |