Docker y docker-compose
La instalación de A-Parser en Linux y MacOS a través de docker es el método recomendado, hemos preparado una imagen que incluye todas las dependencias y librerías necesarias para el funcionamiento de A-Parser y Headless Chrome
Antes de la instalación
- Antes de la instalación, debe registrar la IP en el Área de miembros.
- Es necesario instalar Docker en su sistema.
Descarga de la distribución
Descargue y descomprima la distribución de A-Parser:
curl -O https://a-parser.com/members/onetime/ce42f308eaa577b5/aparser-linux-x64.tar.gz
tar zxf aparser-linux-x64.tar.gz
rm -f aparser-linux-x64.tar.gz
La descarga se realiza mediante un enlace de un solo uso para Linux. Debe obtenerlo en el Área de clientes, pestaña A-Parser -> Descargas
Ejecución a través de Docker
Ejecución en modo foreground
Ejecute A-Parser en modo foreground para ver los registros en la terminal:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
La opción -foreground muestra el contenido del archivo de registro directamente en la terminal:
Apr 27 07:06:53.10427 [master] foreground mode
Apr 27 07:06:54.06409 [master] Found local Chromium: /app/dist/nodejs/node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome
Apr 27 07:06:55.36487 [master] NodeJS console: [Rank::CMS] total loaded 1446 apps
Apr 27 07:07:19.01377 [master] Start ProxyChecker nocheck
Apr 27 07:07:19.24418 [master] Start ProxyChecker default
Apr 27 07:07:19.62635 [master] A-Parser v1.2.1176-linux-x64 started, tasks: 0 / 2, memory total: 1989 MB, available: 610 MB
Después del inicio, A-Parser estará disponible en la dirección http://127.0.0.1:9091
Ejecución en segundo plano
Para ejecutar el contenedor en segundo plano, use el comando:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Ajuste de hilos al ejecutar a través de Docker
Por defecto, dentro del contenedor existe una restricción en el número de archivos/sockets abiertos. Para aumentar el límite a 10240 al ejecutar a través de Docker, utilice la opción --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Adicionalmente, se recomienda realizar la optimización de Linux para un mayor número de hilos en el sistema host.
Actualización de A-Parser en un contenedor Docker
Detenga el contenedor:
docker stop aparser
Actualice A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Al finalizar la actualización, inicie A-Parser
También puede realizar la actualización a través de la interfaz o mediante un enlace de un solo uso
Ejecución en modo Headful
Para la extracción de datos de sitios que requieren ejecutar el navegador en modo headful (con pantalla virtual), utilice la imagen aparser/runtime:headful.
Para cambiar de la imagen normal a headful:
Detenga el contenedor:
docker stop aparser
Descargue la imagen headful:
docker pull aparser/runtime:headful
Inicie A-Parser con la nueva imagen:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Para docker-compose, reemplace la imagen en docker-compose.yml:
image: aparser/runtime:headful
Luego ejecute:
docker compose up -d
Después del inicio, en la configuración del extractor active Chrome headless: 0. En el registro (log) al iniciar Chrome debería mostrarse Headful.
El servidor novnc está disponible en el puerto 5900 para el control visual, la contraseña se establece a través de la variable VNC_PASSWORD (por defecto: docker).
Ejecución mediante docker-compose
Ejemplo de docker-compose.yml
Cree el archivo docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Ejecución mediante docker-compose
Inicie A-Parser:
docker compose up -d
Ajuste de hilos en docker-compose
Al ejecutar mediante docker-compose, dentro del contenedor se aplica una restricción en el número de archivos/sockets abiertos. Para aumentar el límite a 10240, añada el bloque ulimits al servicio a-parser:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
También se recomienda realizar el ajuste de Linux para un mayor número de hilos en el sistema host.