|
|
|
|
|
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' |