FROM node:20-alpine USER root # Arguments that can be passed at build time ARG FLOWISE_PATH=/usr/local/lib/node_modules/flowise ARG BASE_PATH=/data/.flowise ARG DATABASE_PATH=$BASE_PATH ARG APIKEY_PATH=$BASE_PATH ARG SECRETKEY_PATH=$BASE_PATH ARG LOG_PATH=$BASE_PATH/logs # Set the ARGs as ENV ENV FLOWISE_PATH=$FLOWISE_PATH ENV BASE_PATH=$BASE_PATH ENV DATABASE_PATH=$DATABASE_PATH ENV APIKEY_PATH=$APIKEY_PATH ENV SECRETKEY_PATH=$SECRETKEY_PATH ENV LOG_PATH=$LOG_PATH # Install dependencies RUN apk add --update libc6-compat git python3 make g++ # needed for pdfjs-dist RUN apk add --no-cache build-base cairo-dev pango-dev # Install Chromium RUN apk add --no-cache chromium # Install curl for container-level health checks # Fixes: https://github.com/FlowiseAI/Flowise/issues/4126 RUN apk add --no-cache curl #RUN apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium ENV PUPPETEER_SKIP_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV NODE_OPTIONS=--max-old-space-size=8192 # Install Flowise globally RUN npm install -g flowise # Configure Flowise directories using the ARG RUN mkdir -p $FLOWISE_PATH/uploads /data && chmod -R 777 $FLOWISE_PATH /data WORKDIR /data CMD ["sh", "-c", "mkdir -p $LOG_PATH && chmod -R 777 $LOG_PATH && npx flowise start"]