Amansoni7477030 commited on
Commit
28bf1c3
·
verified ·
1 Parent(s): a7cb44b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +31 -32
Dockerfile CHANGED
@@ -1,40 +1,39 @@
1
- # Use Node.js 20 Alpine as base image
2
- FROM node:20-alpine
3
- # Install PNPM globally, create directories, and install dependencies
4
  RUN npm i -g pnpm && \
5
- # Create the /data directory with appropriate permissions
6
- mkdir -p /data && chmod -R 777 /data && \
7
- # Create the flowise directory with appropriate permissions
8
- mkdir -p /usr/local/lib/node_modules/flowise && chmod -R 777 /usr/local/lib/node_modules/flowise && \
9
- # Install dependencies
10
  apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium
11
- # Switch to a non-root user for security
12
- USER node
13
- # Arguments that can be passed at build time and set them as environment variables
14
- ARG FLOWISE_PATH=/usr/local/lib/node_modules/flowise
15
- ARG BASE_PATH=/data/.flowise
16
- ENV FLOWISE_PATH=$FLOWISE_PATH \
17
- BASE_PATH=$BASE_PATH \
 
 
 
 
 
 
 
 
 
 
 
18
  DATABASE_PATH=$BASE_PATH \
19
  APIKEY_PATH=$BASE_PATH \
20
  SECRETKEY_PATH=$BASE_PATH \
21
  LOG_PATH=$BASE_PATH/logs \
22
  PUPPETEER_SKIP_DOWNLOAD=true \
23
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
24
- # Create the /app directory with appropriate permissions, set working directory
25
- RUN mkdir -p /home/node/app && chmod -R 777 /home/node/app
26
- WORKDIR /home/node/app
27
-
28
- RUN \
29
- # Clone the Flowise repository from GitHub
30
- git clone https://github.com/FlowiseAI/Flowise.git . && \
31
- # Install Flowise dependencies
32
- pnpm install && \
33
- # Build Flowise
34
- pnpm build
35
- # Set permissions and create directories
36
- RUN sh -c 'mkdir -p $LOG_PATH && chmod -R 777 $LOG_PATH && \
37
- mkdir -p $FLOWISE_PATH/uploads && chmod -R 777 $FLOWISE_PATH/uploads'
38
-
39
- # Set the entry point to run Flowise
40
- CMD pnpm start
 
1
+ # Stage 1: Builder
2
+ FROM node:20-alpine AS builder
3
+
4
  RUN npm i -g pnpm && \
 
 
 
 
 
5
  apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium
6
+
7
+ WORKDIR /app
8
+ ENV NODE_OPTIONS="--max-old-space-size=4096"
9
+
10
+ # Clone and build Flowise
11
+ RUN git clone https://github.com/FlowiseAI/Flowise.git . && \
12
+ pnpm install --frozen-lockfile && \
13
+ pnpm build
14
+
15
+ # Stage 2: Production
16
+ FROM node:20-alpine
17
+
18
+ RUN npm i -g pnpm && \
19
+ apk add --no-cache chromium
20
+
21
+ # Environment variables
22
+ ENV FLOWISE_PATH=/usr/local/lib/node_modules/flowise \
23
+ BASE_PATH=/data/.flowise \
24
  DATABASE_PATH=$BASE_PATH \
25
  APIKEY_PATH=$BASE_PATH \
26
  SECRETKEY_PATH=$BASE_PATH \
27
  LOG_PATH=$BASE_PATH/logs \
28
  PUPPETEER_SKIP_DOWNLOAD=true \
29
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
30
+
31
+ WORKDIR /app
32
+
33
+ # Copy built files
34
+ COPY --from=builder /app /app
35
+
36
+ RUN mkdir -p $LOG_PATH && chmod -R 777 $LOG_PATH && \
37
+ mkdir -p $FLOWISE_PATH/uploads && chmod -R 777 $FLOWISE_PATH/uploads
38
+
39
+ CMD pnpm start