Docker e docker-compose
L'installazione di A-Parser su Linux e MacOS tramite Docker è il metodo consigliato; abbiamo preparato un'immagine che include tutte le dipendenze e le librerie necessarie per il funzionamento di A-Parser e Headless Chrome.
Prima dell'installazione
- Prima dell'installazione è necessario registrare l'IP nell'Area membri.
- È necessario installare Docker nel proprio sistema.
Download della distribuzione
Scarica e decomprimi la distribuzione di 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
Il download avviene tramite un link monouso per Linux. È possibile ottenerlo nell'Area membri, scheda A-Parser -> Download
Avvio tramite Docker
Avvio in modalità foreground
Avvia A-Parser in modalità foreground per visualizzare i log nel terminale:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
L'opzione -foreground visualizza il contenuto del file di log direttamente nel terminale:
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
Dopo l'avvio, A-Parser sarà disponibile all'indirizzo http://127.0.0.1:9091
Avvio in background
Per avviare il contenitore in background, usa il comando:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Ottimizzazione dei thread all'avvio tramite Docker
Per impostazione predefinita, all'interno del container è presente un limite al numero di file/socket aperti. Per aumentare il limite a 10240 durante l'avvio tramite Docker, usa l'opzione --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Inoltre, si consiglia di eseguire l'ottimizzazione di Linux per un numero maggiore di thread sul sistema host.
Aggiornamento di A-Parser nel container Docker
Ferma il contenitore:
docker stop aparser
Aggiorna A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Al termine dell'aggiornamento, avvia A-Parser
Puoi anche usufruire dell'aggiornamento tramite l'interfaccia o tramite link monouso
Avvio in modalità Headful
Per lo scraping di siti che richiedono l'avvio del browser in modalità headful (con display virtuale), utilizzare l'immagine aparser/runtime:headful.
Per passare dall'immagine standard a quella headful:
Arrestare il contenitore:
docker stop aparser
Scaricare l'immagine headful:
docker pull aparser/runtime:headful
Avviare A-Parser con la nuova immagine:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Per docker-compose, sostituire l'immagine in docker-compose.yml:
image: aparser/runtime:headful
Quindi eseguire:
docker compose up -d
Dopo l'avvio, nelle impostazioni dello scraper, abilitare Chrome headless: 0. Nel log all'avvio di Chrome dovrebbe apparire Headful.
Il server novnc è disponibile sulla porta 5900 per il controllo visivo, la password viene impostata tramite la variabile VNC_PASSWORD (predefinita: docker).
Avvio tramite docker-compose
Esempio docker-compose.yml
Crea il file docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Avvio tramite docker-compose
Avvia A-Parser:
docker compose up -d
Ottimizzazione dei thread in docker-compose
Quando si avvia tramite docker-compose, all'interno del container si applica una restrizione sul numero di file/socket aperti. Per aumentare il limite a 10240, aggiungere al servizio a-parser il blocco ulimits:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Si raccomanda inoltre di eseguire l'ottimizzazione di Linux per un numero maggiore di thread sul sistema host.