Ir al contenido principal

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​

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
nota

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

nota

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
nota

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.