Passer au contenu principal

Docker et docker-compose

L'installation d'A-Parser sur Linux et MacOS via docker est la méthode recommandée, nous avons préparé une image qui inclut toutes les dépendances et bibliothèques nécessaires au fonctionnement d'A-Parser et de Headless Chrome

Avant l'installation

Téléchargement de la distribution

Téléchargez et décompressez la distribution d'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
note

Le téléchargement s'effectue via un lien à usage unique pour Linux. Vous devez le récupérer dans l'Espace Membres, onglet A-Parser -> Téléchargements

Lancement via Docker

Lancement en mode foreground

Lancez A-Parser en mode foreground pour voir les logs dans le terminal :

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground

L'option -foreground affiche le contenu du fichier log directement dans le 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

Après le lancement, A-Parser sera accessible à l'adresse http://127.0.0.1:9091

Lancement en arrière-plan

Pour lancer le conteneur en arrière-plan, utilisez la commande :

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser

Optimisation des threads lors du lancement via Docker

Par défaut, une restriction sur le nombre de fichiers/sockets ouverts s'applique à l'intérieur du conteneur. Pour augmenter la limite à 10240 lors du lancement via Docker, utilisez l'option --ulimit :

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser

Il est également recommandé d'effectuer une optimisation de Linux pour un plus grand nombre de threads sur le système hôte.

Mise à jour d'A-Parser dans le conteneur Docker

Arrêtez le conteneur :

docker stop aparser

Mettez à jour A-Parser :

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate

Une fois la mise à jour terminée, lancez A-Parser

note

Vous pouvez également effectuer la mise à jour via l'interface ou par un lien à usage unique

Lancement en mode Headful

Pour la collecte de données sur des sites nécessitant le lancement du navigateur en mode headful (avec un affichage virtuel), utilisez l'image aparser/runtime:headful.

Pour passer d'une image standard à headful :

Arrêtez le conteneur :

docker stop aparser

Téléchargez l'image headful :

docker pull aparser/runtime:headful

Lancez A-Parser avec la nouvelle image :

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser

Pour docker-compose, remplacez l'image dans docker-compose.yml :

image: aparser/runtime:headful

Ensuite, exécutez :

docker compose up -d
note

Après le lancement, activez Chrome headless: 0 dans les paramètres du scraper. Dans le log, lors du lancement de Chrome, la mention Headful doit apparaître. Le serveur novnc est disponible sur le port 5900 pour le contrôle visuel, le mot de passe est défini via la variable VNC_PASSWORD (par défaut : docker).

Lancement via docker-compose

Exemple docker-compose.yml

Créez un fichier docker-compose.yml :

version: '3'

services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091

Lancement via docker-compose

Lancez A-Parser :

docker compose up -d

Optimisation des threads dans docker-compose

Lors du lancement via docker-compose, une restriction sur le nombre de fichiers/sockets ouverts s'applique à l'intérieur du conteneur. Pour augmenter la limite à 10240, ajoutez le bloc ulimits au service 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

Il est également recommandé d'effectuer une optimisation de Linux pour un plus grand nombre de threads sur le système hôte.