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=/root/.flowise ARG DATABASE_PATH=$BASE_PATH ARG APIKEY_PATH=$BASE_PATH ARG SECRETKEY_PATH=$BASE_PATH ARG LOG_PATH=$BASE_PATH/logs ARG FLOWISE_USERNAME ARG FLOWISE_PASSWORD # Set environment variables ENV PUPPETEER_SKIP_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV DISABLE_FLOWISE_TELEMETRY=true ENV NODE_ENV=production # Install dependencies RUN apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium # Clean npm cache and install the latest Flowise globally RUN npm cache clean --force && \ npm install -g npm@latest && \ npm install -g flowise@latest # Configure Flowise directories RUN mkdir -p $LOG_PATH $DATABASE_PATH $APIKEY_PATH $SECRETKEY_PATH $FLOWISE_PATH/uploads RUN chmod -R 777 $LOG_PATH $DATABASE_PATH $APIKEY_PATH $SECRETKEY_PATH $FLOWISE_PATH # Set working directory WORKDIR /data # Expose default Flowise port EXPOSE 3000 # Start Flowise CMD ["npx", "flowise", "start"]