Docker i docker-compose
Instalacja A-Parser na Linux i MacOS za pomocą docker jest zalecanym sposobem, przygotowaliśmy obraz, który zawiera wszystkie niezbędne zależności i biblioteki do pracy A-Parser i Headless Chrome
Przed instalacją
- Przed instalacją należy wpisać IP w Strefie użytkownika.
- Należy zainstalować Docker w swoim systemie.
Pobieranie dystrybucji
Pobierz i rozpakuj dystrybucję 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
Pobieranie odbywa się za pomocą jednorazowego linku dla systemu Linux. Należy go pobrać w Strefie użytkownika, zakładka A-Parser -> Pobieranie
Uruchamianie przez Docker
Uruchamianie w trybie foreground
Uruchom A-Parser w trybie foreground, aby widzieć logi w terminalu:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
Opcja -foreground wyświetla zawartość pliku logu bezpośrednio w terminalu:
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
Po uruchomieniu A-Parser będzie dostępny pod adresem http://127.0.0.1:9091
Uruchamianie w tle
Aby uruchomić kontener w tle, użyj polecenia:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Tuning wątków przy uruchamianiu przez Docker
Domyślnie wewnątrz kontenera obowiązuje ograniczenie liczby otwartych plików/gniazd. Aby zwiększyć limit do 10240 podczas uruchamiania przez Docker, użyj opcji --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Dodatkowo zaleca się wykonanie tuningu Linux dla większej liczby wątków na systemie hosta.
Aktualizacja A-Parser w kontenerze Docker
Zatrzymaj kontener:
docker stop aparser
Zaktualizuj A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Po zakończeniu aktualizacji uruchom A-Parser
Możesz również skorzystać z aktualizacji przez interfejs lub za pomocą jednorazowego linku
Uruchamianie w trybie Headful
Do scrapowania stron wymagających uruchomienia przeglądarki w trybie headful (z wirtualnym wyświetlaczem), użyj obrazu aparser/runtime:headful.
Aby przejść ze zwykłego obrazu na headful:
Zatrzymaj kontener:
docker stop aparser
Pobierz obraz headful:
docker pull aparser/runtime:headful
Uruchom A-Parser z nowym obrazem:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Dla docker-compose zmień obraz w docker-compose.yml:
image: aparser/runtime:headful
Następnie wykonaj:
docker compose up -d
Po uruchomieniu w ustawieniach scrapera włącz Chrome headless: 0. W logu podczas uruchamiania Chrome powinno wyświetlać się Headful.
Serwer novnc jest dostępny na porcie 5900 do kontroli wizualnej, hasło ustawia się za pomocą zmiennej VNC_PASSWORD (domyślnie: docker).
Uruchamianie przez docker-compose
Przykład docker-compose.yml
Utwórz plik docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Uruchamianie przez docker-compose
Uruchom A-Parser:
docker compose up -d
Tuning wątków w docker-compose
Przy uruchamianiu przez docker-compose wewnątrz kontenera obowiązuje ograniczenie liczby otwartych plików/socketów. Aby zwiększyć limit do 10240, dodaj do usługi a-parser blok ulimits:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Zaleca się również wykonanie tuningu Linux dla większej liczby wątków na systemie hosta.