pannicking commited on
Commit
9bf3d72
·
verified ·
1 Parent(s): a213e6b

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +59 -0
Dockerfile ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ---------- Base image -----------------------------------------------------
2
+ FROM node:18-slim
3
+ # ---------- OS packages ----------------------------------------------------
4
+ RUN apt-get update && apt-get install -y \
5
+
6
+ git python3 python3-pip build-essential \
7
+ libcairo2-dev libpango1.0-dev chromium curl \
8
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
9
+ # ---------- Environment ----------------------------------------------------
10
+ ENV PUPPETEER_SKIP_DOWNLOAD=true \
11
+ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \
12
+ CHROMA_SERVER_CORS_ALLOW_ORIGINS='["*"]' \
13
+ PORT=7860 \
14
+ FLOWISE_USERNAME=admin \
15
+ FLOWISE_PASSWORD=admin \
16
+ DATABASE_PATH=/data/.flowise \
17
+ LOG_PATH=/data/.flowise/logs \
18
+ TEMP_UPLOAD_DIR=/data/uploads \
19
+ CHROMA_URL=http://localhost:8000
20
+ # ---------- Node & Python deps --------------------------------------------
21
+ RUN npm install -g flowise@3.0.0
22
+ # Chroma server 1.x (compatible with Flowise v2 API)
23
+ RUN pip3 install numpy==1.26.4 --break-system-packages \
24
+ && pip3 install chromadb==1.0.9 --break-system-packages # provides `chroma` CLI v2
25
+ # ---------- Prevent Flowise early-log crash -------------------------------
26
+ RUN mkdir -p /usr/local/lib/node_modules/flowise/logs \
27
+ && chmod -R 777 /usr/local/lib/node_modules/flowise
28
+ # ---------- Persistent data directories -----------------------------------
29
+ WORKDIR /data
30
+ RUN mkdir -p /data/.flowise/logs /data/.flowise/storage /data/uploads /data/chroma \
31
+ && chmod -R 777 /data \
32
+ && chown -R 1000:1000 /data
33
+ ENV PATH=$PATH:/home/node/.local/bin:/usr/local/bin:/root/.local/bin
34
+ USER 1000:1000
35
+ # ---------- Expose ports ---------------------------------------------------
36
+ EXPOSE 7860 8000
37
+ # ---------- Start: Chroma ➜ wait ➜ Flowise ---------------------------------
38
+ CMD sh -c 'set -x; \
39
+ chroma run \
40
+ --path /data/chroma \
41
+ --host 0.0.0.0 \
42
+ --port 8000 \
43
+ & \
44
+ echo "--- Waiting for Chroma API ---"; \
45
+ while ! curl -v http://localhost:8000/api/v2/heartbeat; do \
46
+ echo "[DEBUG] Chroma not ready yet. Retrying..."; \
47
+ netstat -tulnp || ss -tulnp || true; \
48
+ sleep 1; \
49
+ done; \
50
+ echo "--- Chroma API is up ---"; \
51
+ echo "[DEBUG] Testing Chroma collections endpoint:"; \
52
+
53
+ curl -v http://localhost:8000/api/v2/collections || true; \
54
+ echo "[DEBUG] Environment variables:"; \
55
+ printenv | grep CHROMA || true; \
56
+ echo "[DEBUG] Process list:"; \
57
+ ps aux; \
58
+ echo "[DEBUG] Flowise will start now."; \
59
+ npx flowise start'