Improvement - Reduce size of final docker image with multistage build (#2598)
* Reduce size of final docker image with multistage build * Dockerfile - Move PUPPETEER_SKIP_DOWNLOAD flag to build stage
This commit is contained in:
parent
c8939dc2a6
commit
be3a887e68
|
|
@ -1,21 +1,25 @@
|
||||||
FROM node:20-alpine
|
# Stage 1: Build stage
|
||||||
|
FROM node:20-alpine as build
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN apk add --no-cache git
|
# Skip downloading Chrome for Puppeteer (saves build time)
|
||||||
RUN apk add --no-cache python3 py3-pip 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
|
|
||||||
|
|
||||||
ENV PUPPETEER_SKIP_DOWNLOAD=true
|
ENV PUPPETEER_SKIP_DOWNLOAD=true
|
||||||
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
|
||||||
|
|
||||||
# You can install a specific version like: flowise@1.0.0
|
# Install latest Flowise globally (specific version can be set: flowise@1.0.0)
|
||||||
RUN npm install -g flowise
|
RUN npm install -g flowise
|
||||||
|
|
||||||
WORKDIR /data
|
# 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
|
||||||
|
|
||||||
|
# Set the environment variable for Puppeteer to find Chromium
|
||||||
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
||||||
|
|
||||||
|
# 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"]
|
ENTRYPOINT ["flowise", "start"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue