Spaces:
Running
Running
| # Stage 1: Build stage | |
| FROM node:20-alpine as build | |
| 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 BLOB_STORAGE_PATH=$BASE_PATH/storage | |
| ENV PUPPETEER_SKIP_DOWNLOAD=true | |
| ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser | |
| # Install Flowise globally | |
| RUN npm install -g flowise | |
| # Stage 2: Runtime stage | |
| FROM node:20-alpine | |
| # Install runtime dependencies | |
| RUN apk add --no-cache chromium git python3 py3-pip make g++ build-base cairo-dev pango-dev | |
| # Configure Flowise directories using the ARG | |
| RUN mkdir -p $LOG_PATH $BLOB_STORAGE_PATH $FLOWISE_PATH/uploads && chmod -R 777 $LOG_PATH $BLOB_STORAGE_PATH $FLOWISE_PATH | |
| # Copy Flowise from the build stage | |
| COPY --from=build /usr/local/lib/node_modules /usr/local/lib/node_modules | |
| COPY --from=build /usr/local/bin /usr/local/bin | |
| ENTRYPOINT ["flowise", "start"] |