From 590748c0d9ff536f185de9771357c0b6f91d6b8b Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Wed, 10 Jun 2026 18:33:20 -0300 Subject: [PATCH 1/2] CI/CD: Ajustado Para rodar com docker --- Dockerfile | 2 +- package.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 958f9ea..3480062 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,4 +4,4 @@ COPY package*.json ./ RUN npm ci COPY . . EXPOSE 3001 -CMD ["npm", "run", "dev"] +CMD ["npm", "run", "dev:docker"] diff --git a/package.json b/package.json index e04f662..5001a71 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "start": "cross-env NODE_ENV=production node dist/main.js", "predev": "node scripts/ensure-port-free.js", "dev": "cross-env NODE_ENV=development nest start --watch", - "start:dev": "npm run dev" + "start:dev": "npm run dev", + "dev:docker": "cross-env NODE_ENV=development nest start --watch" }, "dependencies": { "@nestjs/common": "^11.1.19", From 779d64b2f05532635209d46c135bbd66c4c97009 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Wed, 10 Jun 2026 18:42:09 -0300 Subject: [PATCH 2/2] CI/CD: Permitindo que o docker instale o chromium em qualquer ambiente --- Dockerfile | 2 ++ src/modules/whatsapp/whatsapp.service.ts | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3480062..6c76c36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ FROM node:20-alpine WORKDIR /app +RUN apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont +ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser COPY package*.json ./ RUN npm ci COPY . . diff --git a/src/modules/whatsapp/whatsapp.service.ts b/src/modules/whatsapp/whatsapp.service.ts index f5277ad..ca00465 100644 --- a/src/modules/whatsapp/whatsapp.service.ts +++ b/src/modules/whatsapp/whatsapp.service.ts @@ -7,6 +7,18 @@ import { WhatsappTemplateService } from './whatsapp-template.service'; import * as fs from 'fs'; import * as path from 'path'; +function getBrowserExecutablePath() { + if (process.env.PUPPETEER_EXECUTABLE_PATH) { + return process.env.PUPPETEER_EXECUTABLE_PATH; + } + + if (process.platform === 'win32') { + return 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'; + } + + return undefined; +} + @Injectable() export class WhatsappService implements OnModuleInit { private client: Client; @@ -31,7 +43,7 @@ export class WhatsappService implements OnModuleInit { authStrategy: new LocalAuth({ dataPath: './whatsapp-session' }), puppeteer: { headless: true, - executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', + executablePath: getBrowserExecutablePath(), args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--no-first-run', '--disable-gpu'] }, webVersionCache: {