fix: Puppeteer shm crash - add --disable-dev-shm-usage and /dev/shm volume

This commit is contained in:
Antigravity 2026-05-28 23:46:30 -04:00
parent 5fb2afec1d
commit 6449870836
2 changed files with 39 additions and 7 deletions

View File

@ -29,27 +29,36 @@ spec:
containers: containers:
- name: whatsapp-gateway - name: whatsapp-gateway
image: node:18-alpine image: node:18-alpine
# Install dependencies needed by Puppeteer inside Alpine
# whatsapp-web.js requires Chromium
command: command:
- "sh" - "sh"
- "-c" - "-c"
- "apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont && cd /app && npm install && PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser node server.js" - "apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont && cd /app && npm install && node server.js"
env:
- name: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
value: "true"
- name: PUPPETEER_EXECUTABLE_PATH
value: "/usr/bin/chromium-browser"
volumeMounts: volumeMounts:
- name: app-code - name: app-code
mountPath: /app mountPath: /app
- name: dshm
mountPath: /dev/shm
ports: ports:
- containerPort: 5001 - containerPort: 5001
resources: resources:
requests: requests:
cpu: 300m cpu: 300m
memory: 512Mi memory: 768Mi
limits: limits:
cpu: "1.5" cpu: "2"
memory: 1.5Gi memory: 2Gi
volumes: volumes:
- name: app-code - name: app-code
emptyDir: {} emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
sizeLimit: 1Gi
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service

View File

@ -14,7 +14,20 @@ const client = new Client({
}), }),
puppeteer: { puppeteer: {
headless: true, headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'] executablePath: process.env.PUPPETEER_EXECUTABLE_PATH || '/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--disable-gpu',
'--no-first-run',
'--no-zygote',
'--single-process',
'--disable-extensions',
'--disable-background-networking',
'--disable-default-apps'
]
} }
}); });
@ -27,6 +40,16 @@ client.on('qr', (qr) => {
console.log('==================================================================\n'); console.log('==================================================================\n');
qrcode.generate(qr, { small: true }); qrcode.generate(qr, { small: true });
console.log('\n=================================================================='); console.log('\n==================================================================');
console.log('[WhatsApp Bot] QR code generated. Waiting for scan...');
});
// Log loading progress
client.on('loading_screen', (percent, message) => {
console.log(`[WhatsApp Bot] Loading: ${percent}% - ${message}`);
});
client.on('authenticated', () => {
console.log('[WhatsApp Bot] Authenticated successfully!');
}); });
// Event: Successfully logged in & authenticated // Event: Successfully logged in & authenticated