1+ FROM node:22.16.0-alpine3.20 AS builder
2+
3+ ENV LANG=C.UTF-8
4+
5+ RUN apk add --no-cache python3 make g++ py3-setuptools libc6-compat
6+
7+ COPY . /app
8+
9+ ENV NODE_ENV=production
10+
11+ RUN cd /app/bundle/programs/server \
12+ && npm install --omit=dev \
13+ # Re install sharp dependencies to ensure proper binary for architecture
14+ # We only need the @img folder from sharp dependencies
15+ && cd /app/bundle/programs/server/npm/node_modules/sharp \
16+ && npm install --omit=dev \
17+ && rm -rf ../@img \
18+ && mv node_modules/@img ../@img \
19+ && rm -rf node_modules
20+
121FROM node:22.16.0-alpine3.20
222
323LABEL maintainer="buildmaster@rocket.chat"
@@ -16,16 +36,13 @@ ENV LANG=C.UTF-8
1636# and more complex or security conscious daemons run as dedicated users.
1737# The daemon user is also handy for locally installed daemons.
1838# """
19- RUN apk add --no-cache deno ttf-dejavu \
20- && apk add --no-cache --virtual deps shadow python3 make g++ py3-setuptools libc6-compat \
39+ RUN apk add --no-cache shadow deno ttf-dejavu \
2140 # Update OpenSSL
2241 # CVE -> https://scout.docker.com/vulnerabilities/id/CVE-2025-9230?s=alpine&n=openssl&ns=alpine&t=apk&osn=alpine&osv=3.21
2342 && apk upgrade --no-cache openssl \
2443 && groupmod -n rocketchat nogroup \
2544 && useradd -u 65533 -r -g rocketchat rocketchat
2645
27- COPY --chown=rocketchat:rocketchat . /app
28-
2946# needs a mongo instance - defaults to container linking with alias 'mongo'
3047ENV DEPLOY_METHOD=docker \
3148 NODE_ENV=production \
@@ -37,27 +54,7 @@ ENV DEPLOY_METHOD=docker \
3754
3855USER rocketchat
3956
40- RUN cd /app/bundle/programs/server \
41- && npm install --omit=dev \
42- && cd /app/bundle/programs/server \
43- && rm -rf npm/node_modules/sharp \
44- && npm install sharp@0.32.6 --no-save \
45- && mv node_modules/sharp npm/node_modules/sharp \
46- # End hack for sharp
47- # # Start hack for isolated-vm...
48- # && rm -rf npm/node_modules/isolated-vm \
49- # && npm install isolated-vm@4.6.0 \
50- # && mv node_modules/isolated-vm npm/node_modules/isolated-vm \
51- # # End hack for isolated-vm
52- && cd /app/bundle/programs/server/npm \
53- && npm rebuild bcrypt --build-from-source \
54- && npm cache clear --force
55-
56- USER root
57-
58- RUN apk del deps
59-
60- USER rocketchat
57+ COPY --from=builder --chown=rocketchat:rocketchat /app /app
6158
6259VOLUME /app/uploads
6360
0 commit comments