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
- Avant l'installation, vous devez renseigner votre IP dans l'Espace Membres.
- Il est nécessaire d'installer Docker sur votre système.
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
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
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
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.