Puppeteer en ARM
Puppeteer es una herramienta popular para controlar navegadores de forma automática. Sin embargo, en sistemas con arquitectura ARM, como Raspberry Pi, pueden surgir ciertos problemas que requieren una configuración adicional.
Documentación Oficial de Puppeteer Enlace a la documentación oficial de Puppeteer.
Configura tu archivo dockerfile:
Para ejecutar Puppeteer en un contenedor Docker, aquí tienes un Dockerfile
funcional para sistemas ARM:
# Usa una imagen base oficial de Node.js versión 20.15.0FROM node:20.15.0
# Establece el directorio de trabajo dentro del contenedorWORKDIR /app
# Actualiza los paquetes e instala ChromiumRUN apt-get update && apt-get install -y \ chromium
# Establece las variables de entorno para PuppeteerENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD trueENV CHROME_BIN /usr/bin/chromium
# Copia el archivo package.json y package-lock.json al directorio de trabajoCOPY package*.json ./
# Instala las dependencias del proyecto utilizando npm ciRUN npm ci
# Copia el resto de los archivos de la aplicación al directorio de trabajoCOPY . .
# Comando por defecto para ejecutar el scriptCMD ["node", "index.js"]
Configura tu archivo index.js
:
Crea un archivo index.js
en tu proyecto y añade el siguiente código:
const puppeteer = require('puppeteer');
const loginAndPerformActions = async () => { const browser = await puppeteer.launch({ headless: true, executablePath: process.env.CHROME_BIN, args: ['--no-sandbox', '--disable-setuid-sandbox'] });
const page = await browser.newPage(); await page.goto('https://example.com'); console.log("Página cargada correctamente"); await browser.close();};
loginAndPerformActions();
Deberías tener un contenedor funcional de puppeteer.