Zum Hauptinhalt springen

Docker und docker-compose

Die Installation von A-Parser auf Linux und MacOS über Docker ist die empfohlene Methode. Wir haben ein Image vorbereitet, das alle notwendigen Abhängigkeiten und Bibliotheken für den Betrieb von A-Parser und Headless Chrome enthält.

Vor der Installation

Download der Distribution

Laden Sie die A-Parser-Distribution herunter und entpacken Sie diese:

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
Hinweis

Der Download erfolgt über einen Einmal-Link für Linux. Diesen finden Sie im Mitgliederbereich, Tab A-Parser -> Downloads

Start über Docker

Start im Foreground-Modus

Starten Sie A-Parser im Foreground-Modus, um die Logs im Terminal zu sehen:

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

Die Option -foreground gibt den Inhalt der Log-Datei direkt im Terminal aus:

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

Nach dem Start ist A-Parser unter der Adresse http://127.0.0.1:9091 erreichbar.

Start im Hintergrund

Um den Container im Hintergrund zu starten, verwenden Sie den Befehl:

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

Thread-Tuning beim Start über Docker

Standardmäßig gilt innerhalb des Containers eine Beschränkung für die Anzahl der geöffneten Dateien/Sockets. Um das Limit beim Start über Docker auf 10240 zu erhöhen, verwenden Sie die Option --ulimit:

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

Zusätzlich wird empfohlen, ein Linux-Tuning für eine höhere Anzahl von Threads auf dem Host-System durchzuführen.

Aktualisierung von A-Parser im Docker-Container

Stoppen Sie den Container:

docker stop aparser

Aktualisieren Sie A-Parser:

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

Starten Sie A-Parser nach Abschluss des Updates.

Hinweis

Sie können das Update auch über die Benutzeroberfläche oder per Einmal-Link durchführen.

Start im Headful-Modus

Verwenden Sie das Image aparser/runtime:headful für die Datenerfassung von Websites, die den Start des Browsers im Headful-Modus (mit virtuellem Display) erfordern.

Um vom Standard-Image auf Headful zu wechseln:

Stoppen Sie den Container:

docker stop aparser

Laden Sie das Headful-Image herunter:

docker pull aparser/runtime:headful

Starten Sie A-Parser mit dem neuen Image:

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

Ersetzen Sie für docker-compose das Image in der docker-compose.yml:

image: aparser/runtime:headful

Führen Sie anschließend aus:

docker compose up -d
Hinweis

Aktivieren Sie nach dem Start in den Scraper-Einstellungen Chrome headless: 0. Im Log sollte beim Start von Chrome Headful angezeigt werden. Der novnc-Server ist auf Port 5900 zur visuellen Kontrolle verfügbar, das Passwort wird über die Variable VNC_PASSWORD festgelegt (Standard: docker).

Start über docker-compose

Beispiel für docker-compose.yml

Erstellen Sie die Datei docker-compose.yml:

version: '3'

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

Start über docker-compose

Starten Sie A-Parser:

docker compose up -d

Thread-Tuning in docker-compose

Beim Start über docker-compose gilt innerhalb des Containers eine Beschränkung für die Anzahl der geöffneten Dateien/Sockets. Um das Limit auf 10240 zu erhöhen, fügen Sie dem Service a-parser den Block ulimits hinzu:

services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240

Es wird außerdem empfohlen, ein Linux-Tuning für eine höhere Thread-Anzahl auf dem Host-System durchzuführen.