File size: 2,404 Bytes
39058a9
 
abdcc39
39058a9
 
abdcc39
 
 
 
39058a9
 
abdcc39
 
 
 
 
 
 
 
39058a9
 
abdcc39
39058a9
 
abdcc39
 
39058a9
 
abdcc39
 
39058a9
 
 
abdcc39
 
39058a9
 
abdcc39
39058a9
 
abdcc39
39058a9
 
abdcc39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# ---------- 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 \
    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'