@builderbot/cli 1.1.2-alpha.2 → 1.1.2-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/index.cjs +6 -6
  2. package/dist/starters/apps/base-js-baileys-json/Dockerfile +4 -2
  3. package/dist/starters/apps/base-js-baileys-memory/Dockerfile +4 -2
  4. package/dist/starters/apps/base-js-baileys-mongo/Dockerfile +4 -2
  5. package/dist/starters/apps/base-js-baileys-mysql/Dockerfile +4 -2
  6. package/dist/starters/apps/base-js-baileys-postgres/Dockerfile +4 -2
  7. package/dist/starters/apps/base-js-meta-json/Dockerfile +4 -2
  8. package/dist/starters/apps/base-js-meta-memory/Dockerfile +4 -2
  9. package/dist/starters/apps/base-js-meta-mongo/Dockerfile +4 -2
  10. package/dist/starters/apps/base-js-meta-mysql/Dockerfile +4 -2
  11. package/dist/starters/apps/base-js-meta-postgres/Dockerfile +4 -2
  12. package/dist/starters/apps/base-js-twilio-json/Dockerfile +4 -2
  13. package/dist/starters/apps/base-js-twilio-memory/Dockerfile +4 -2
  14. package/dist/starters/apps/base-js-twilio-mongo/Dockerfile +4 -2
  15. package/dist/starters/apps/base-js-twilio-mysql/Dockerfile +4 -2
  16. package/dist/starters/apps/base-js-twilio-postgres/Dockerfile +4 -2
  17. package/dist/starters/apps/base-js-venom-json/Dockerfile +46 -19
  18. package/dist/starters/apps/base-js-venom-memory/Dockerfile +46 -19
  19. package/dist/starters/apps/base-js-venom-mongo/Dockerfile +46 -19
  20. package/dist/starters/apps/base-js-venom-mysql/Dockerfile +46 -19
  21. package/dist/starters/apps/base-js-venom-postgres/Dockerfile +46 -19
  22. package/dist/starters/apps/base-js-wppconnect-json/Dockerfile +46 -19
  23. package/dist/starters/apps/base-js-wppconnect-memory/Dockerfile +46 -19
  24. package/dist/starters/apps/base-js-wppconnect-mongo/Dockerfile +46 -19
  25. package/dist/starters/apps/base-js-wppconnect-mysql/Dockerfile +46 -19
  26. package/dist/starters/apps/base-js-wppconnect-postgres/Dockerfile +46 -19
  27. package/dist/starters/apps/base-ts-venom-json/Dockerfile +47 -21
  28. package/dist/starters/apps/base-ts-venom-memory/Dockerfile +47 -21
  29. package/dist/starters/apps/base-ts-venom-mongo/Dockerfile +47 -21
  30. package/dist/starters/apps/base-ts-venom-mysql/Dockerfile +47 -21
  31. package/dist/starters/apps/base-ts-venom-postgres/Dockerfile +47 -21
  32. package/dist/starters/apps/base-ts-wppconnect-json/Dockerfile +47 -21
  33. package/dist/starters/apps/base-ts-wppconnect-memory/Dockerfile +47 -21
  34. package/dist/starters/apps/base-ts-wppconnect-mongo/Dockerfile +47 -21
  35. package/dist/starters/apps/base-ts-wppconnect-mysql/Dockerfile +47 -21
  36. package/dist/starters/apps/base-ts-wppconnect-postgres/Dockerfile +47 -21
  37. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -210,17 +210,17 @@ const checkNodeVersion = () => {
210
210
  return new Promise((resolve) => {
211
211
  const version = node_os.version;
212
212
  const majorVersion = parseInt(version().replace('v', '').split('.')[0]);
213
- if (majorVersion < 18) {
214
- resolve({ pass: false, message: `Se requiere Node.js 18 o superior. (${version})` });
213
+ if (majorVersion < 20) {
214
+ resolve({ pass: false, message: `Node.js 20 or higher is required.. (${version})` });
215
215
  }
216
- resolve({ pass: true, message: `Node: ${version} compatible` });
216
+ resolve({ pass: true, message: `Node: ${version} supported` });
217
217
  });
218
218
  };
219
219
  const checkOs = () => {
220
220
  return new Promise((resolve) => {
221
221
  const os = node_os.platform();
222
222
  if (!os.includes('win32')) {
223
- resolve(`OS: ${os} (revisar documentación)`);
223
+ resolve(`OS: ${os}`);
224
224
  }
225
225
  resolve(`OS: ${os}`);
226
226
  });
@@ -229,10 +229,10 @@ const checkGit = () => {
229
229
  return new Promise((resolve, reject) => {
230
230
  node_child_process.exec('git --version', (error) => {
231
231
  if (error) {
232
- reject({ pass: false, message: `Requiere instalar GIT` });
232
+ reject({ pass: false, message: `Requires GIT installation` });
233
233
  }
234
234
  else {
235
- resolve({ pass: true, message: `Git: compatible` });
235
+ resolve({ pass: true, message: `Git: supported` });
236
236
  }
237
237
  });
238
238
  });
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,4 +1,4 @@
1
- # Image size ~ 330MB
1
+ # Image size ~ 400MB
2
2
  FROM node:21-alpine3.18 as builder
3
3
 
4
4
  WORKDIR /app
@@ -26,7 +26,9 @@ ARG PORT
26
26
  ENV PORT $PORT
27
27
  EXPOSE $PORT
28
28
 
29
- COPY --from=builder /app .
29
+ COPY --from=builder /app/assets ./assets
30
+ COPY --from=builder /app/dist ./dist
31
+ COPY --from=builder /app/*.json /app/*-lock.yaml ./
30
32
 
31
33
  RUN corepack enable && corepack prepare pnpm@latest --activate
32
34
  ENV PNPM_HOME=/usr/local/bin
@@ -1,38 +1,65 @@
1
- # Image size ~ 330MB
2
1
  FROM node:21-alpine3.18 as builder
3
2
 
4
- WORKDIR /app
3
+ RUN apk add --no-cache \
4
+ git \
5
+ python3 \
6
+ make \
7
+ g++ \
8
+ chromium \
9
+ nss \
10
+ freetype \
11
+ harfbuzz \
12
+ ca-certificates \
13
+ libpq-dev \
14
+ ttf-freefont \
15
+ udev
5
16
 
6
17
  RUN corepack enable && corepack prepare pnpm@latest --activate
7
18
  ENV PNPM_HOME=/usr/local/bin
8
19
 
20
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
21
+
22
+ WORKDIR /app
23
+ RUN chown -R pptruser:pptruser /app
24
+
25
+ USER pptruser
26
+
27
+ COPY package.json *-lock.* ./
28
+
29
+ RUN pnpm install --production=false
30
+
9
31
  COPY . .
10
32
 
11
- COPY package*.json *-lock.yaml ./
33
+ FROM node:21-alpine3.18
34
+
35
+ RUN apk add --no-cache \
36
+ chromium \
37
+ nss \
38
+ freetype \
39
+ harfbuzz \
40
+ ca-certificates \
41
+ libpq-dev \
42
+ ttf-freefont \
43
+ udev
12
44
 
13
- RUN apk add --no-cache --virtual .gyp \
14
- python3 \
15
- make \
16
- g++ \
17
- && apk add --no-cache git \
18
- && pnpm install \
19
- && apk del .gyp
45
+ RUN corepack enable && corepack prepare pnpm@latest --activate
46
+ ENV PNPM_HOME=/usr/local/bin
20
47
 
21
- FROM node:21-alpine3.18 as deploy
48
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
22
49
 
23
50
  WORKDIR /app
24
51
 
52
+ COPY --from=builder /app/dist ./dist
53
+ COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
54
+
55
+ RUN chown -R pptruser:pptruser /app
56
+
57
+ USER pptruser
58
+
25
59
  ARG PORT
26
60
  ENV PORT $PORT
27
61
  EXPOSE $PORT
28
62
 
29
- COPY --from=builder /app .
30
-
31
- RUN corepack enable && corepack prepare pnpm@latest --activate
32
- ENV PNPM_HOME=/usr/local/bin
33
-
34
- RUN npm cache clean --force && pnpm install --production --ignore-scripts \
35
- && addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
36
- && rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
63
+ RUN pnpm install --production
37
64
 
38
65
  CMD ["npm", "start"]
@@ -1,38 +1,65 @@
1
- # Image size ~ 330MB
2
1
  FROM node:21-alpine3.18 as builder
3
2
 
4
- WORKDIR /app
3
+ RUN apk add --no-cache \
4
+ git \
5
+ python3 \
6
+ make \
7
+ g++ \
8
+ chromium \
9
+ nss \
10
+ freetype \
11
+ harfbuzz \
12
+ ca-certificates \
13
+ libpq-dev \
14
+ ttf-freefont \
15
+ udev
5
16
 
6
17
  RUN corepack enable && corepack prepare pnpm@latest --activate
7
18
  ENV PNPM_HOME=/usr/local/bin
8
19
 
20
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
21
+
22
+ WORKDIR /app
23
+ RUN chown -R pptruser:pptruser /app
24
+
25
+ USER pptruser
26
+
27
+ COPY package.json *-lock.* ./
28
+
29
+ RUN pnpm install --production=false
30
+
9
31
  COPY . .
10
32
 
11
- COPY package*.json *-lock.yaml ./
33
+ FROM node:21-alpine3.18
34
+
35
+ RUN apk add --no-cache \
36
+ chromium \
37
+ nss \
38
+ freetype \
39
+ harfbuzz \
40
+ ca-certificates \
41
+ libpq-dev \
42
+ ttf-freefont \
43
+ udev
12
44
 
13
- RUN apk add --no-cache --virtual .gyp \
14
- python3 \
15
- make \
16
- g++ \
17
- && apk add --no-cache git \
18
- && pnpm install \
19
- && apk del .gyp
45
+ RUN corepack enable && corepack prepare pnpm@latest --activate
46
+ ENV PNPM_HOME=/usr/local/bin
20
47
 
21
- FROM node:21-alpine3.18 as deploy
48
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
22
49
 
23
50
  WORKDIR /app
24
51
 
52
+ COPY --from=builder /app/dist ./dist
53
+ COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
54
+
55
+ RUN chown -R pptruser:pptruser /app
56
+
57
+ USER pptruser
58
+
25
59
  ARG PORT
26
60
  ENV PORT $PORT
27
61
  EXPOSE $PORT
28
62
 
29
- COPY --from=builder /app .
30
-
31
- RUN corepack enable && corepack prepare pnpm@latest --activate
32
- ENV PNPM_HOME=/usr/local/bin
33
-
34
- RUN npm cache clean --force && pnpm install --production --ignore-scripts \
35
- && addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
36
- && rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
63
+ RUN pnpm install --production
37
64
 
38
65
  CMD ["npm", "start"]
@@ -1,38 +1,65 @@
1
- # Image size ~ 330MB
2
1
  FROM node:21-alpine3.18 as builder
3
2
 
4
- WORKDIR /app
3
+ RUN apk add --no-cache \
4
+ git \
5
+ python3 \
6
+ make \
7
+ g++ \
8
+ chromium \
9
+ nss \
10
+ freetype \
11
+ harfbuzz \
12
+ ca-certificates \
13
+ libpq-dev \
14
+ ttf-freefont \
15
+ udev
5
16
 
6
17
  RUN corepack enable && corepack prepare pnpm@latest --activate
7
18
  ENV PNPM_HOME=/usr/local/bin
8
19
 
20
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
21
+
22
+ WORKDIR /app
23
+ RUN chown -R pptruser:pptruser /app
24
+
25
+ USER pptruser
26
+
27
+ COPY package.json *-lock.* ./
28
+
29
+ RUN pnpm install --production=false
30
+
9
31
  COPY . .
10
32
 
11
- COPY package*.json *-lock.yaml ./
33
+ FROM node:21-alpine3.18
34
+
35
+ RUN apk add --no-cache \
36
+ chromium \
37
+ nss \
38
+ freetype \
39
+ harfbuzz \
40
+ ca-certificates \
41
+ libpq-dev \
42
+ ttf-freefont \
43
+ udev
12
44
 
13
- RUN apk add --no-cache --virtual .gyp \
14
- python3 \
15
- make \
16
- g++ \
17
- && apk add --no-cache git \
18
- && pnpm install \
19
- && apk del .gyp
45
+ RUN corepack enable && corepack prepare pnpm@latest --activate
46
+ ENV PNPM_HOME=/usr/local/bin
20
47
 
21
- FROM node:21-alpine3.18 as deploy
48
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
22
49
 
23
50
  WORKDIR /app
24
51
 
52
+ COPY --from=builder /app/dist ./dist
53
+ COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
54
+
55
+ RUN chown -R pptruser:pptruser /app
56
+
57
+ USER pptruser
58
+
25
59
  ARG PORT
26
60
  ENV PORT $PORT
27
61
  EXPOSE $PORT
28
62
 
29
- COPY --from=builder /app .
30
-
31
- RUN corepack enable && corepack prepare pnpm@latest --activate
32
- ENV PNPM_HOME=/usr/local/bin
33
-
34
- RUN npm cache clean --force && pnpm install --production --ignore-scripts \
35
- && addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
36
- && rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
63
+ RUN pnpm install --production
37
64
 
38
65
  CMD ["npm", "start"]
@@ -1,38 +1,65 @@
1
- # Image size ~ 330MB
2
1
  FROM node:21-alpine3.18 as builder
3
2
 
4
- WORKDIR /app
3
+ RUN apk add --no-cache \
4
+ git \
5
+ python3 \
6
+ make \
7
+ g++ \
8
+ chromium \
9
+ nss \
10
+ freetype \
11
+ harfbuzz \
12
+ ca-certificates \
13
+ libpq-dev \
14
+ ttf-freefont \
15
+ udev
5
16
 
6
17
  RUN corepack enable && corepack prepare pnpm@latest --activate
7
18
  ENV PNPM_HOME=/usr/local/bin
8
19
 
20
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
21
+
22
+ WORKDIR /app
23
+ RUN chown -R pptruser:pptruser /app
24
+
25
+ USER pptruser
26
+
27
+ COPY package.json *-lock.* ./
28
+
29
+ RUN pnpm install --production=false
30
+
9
31
  COPY . .
10
32
 
11
- COPY package*.json *-lock.yaml ./
33
+ FROM node:21-alpine3.18
34
+
35
+ RUN apk add --no-cache \
36
+ chromium \
37
+ nss \
38
+ freetype \
39
+ harfbuzz \
40
+ ca-certificates \
41
+ libpq-dev \
42
+ ttf-freefont \
43
+ udev
12
44
 
13
- RUN apk add --no-cache --virtual .gyp \
14
- python3 \
15
- make \
16
- g++ \
17
- && apk add --no-cache git \
18
- && pnpm install \
19
- && apk del .gyp
45
+ RUN corepack enable && corepack prepare pnpm@latest --activate
46
+ ENV PNPM_HOME=/usr/local/bin
20
47
 
21
- FROM node:21-alpine3.18 as deploy
48
+ RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
22
49
 
23
50
  WORKDIR /app
24
51
 
52
+ COPY --from=builder /app/dist ./dist
53
+ COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
54
+
55
+ RUN chown -R pptruser:pptruser /app
56
+
57
+ USER pptruser
58
+
25
59
  ARG PORT
26
60
  ENV PORT $PORT
27
61
  EXPOSE $PORT
28
62
 
29
- COPY --from=builder /app .
30
-
31
- RUN corepack enable && corepack prepare pnpm@latest --activate
32
- ENV PNPM_HOME=/usr/local/bin
33
-
34
- RUN npm cache clean --force && pnpm install --production --ignore-scripts \
35
- && addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
36
- && rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
63
+ RUN pnpm install --production
37
64
 
38
65
  CMD ["npm", "start"]