Merge pull request #4150 from pinjeff/docker-build

Reduce final docker image size
This commit is contained in:
advplyr 2025-05-12 15:20:51 -05:00 committed by GitHub
commit 5cadc8d90f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 11 deletions

View File

@ -1,29 +1,25 @@
### STAGE 0: Build client ###
FROM node:20-alpine AS build
FROM node:20-alpine AS build-client
WORKDIR /client
COPY /client /client
RUN npm ci && npm cache clean --force
RUN npm run generate
### STAGE 1: Build server ###
FROM node:20-alpine
FROM node:20-alpine AS build-server
ENV NODE_ENV=production
RUN apk update && \
apk add --no-cache --update \
RUN apk add --no-cache --update \
curl \
tzdata \
ffmpeg \
make \
python3 \
g++ \
tini \
unzip
COPY --from=build /client/dist /client/dist
COPY index.js package* /
COPY server server
WORKDIR /server
COPY index.js package* /server
COPY /server /server/server
ARG TARGETPLATFORM
@ -42,7 +38,20 @@ RUN case "$TARGETPLATFORM" in \
RUN npm ci --only=production
RUN apk del make python3 g++
### STAGE 2: Create minimal runtime image ###
FROM node:20-alpine
# Install only runtime dependencies
RUN apk add --no-cache --update \
tzdata \
ffmpeg \
tini
WORKDIR /app
# Copy compiled frontend and server from build stages
COPY --from=build-client /client/dist /app/client/dist
COPY --from=build-server /server /app
EXPOSE 80

0
tailwind.config.js Normal file
View File