Für die Verwendung von Puppeteer zum Rendern von mehrseitigen HTML-Dokumenten wurde ein Runtime-Image bereitgestellt:
registry.brandbox.host/runtime/puppeteer:1.0.0
Enthaltene Software
Software | Version |
---|---|
Debian | 10 |
Node.js | 14.21.3 |
Konfiguration für docker-compose.yml
Das Image kann in einer docker-compose.yml
wie folgt eingebunden werden:
Codeblock | ||
---|---|---|
| ||
puppeteer: image: registry.brandbox.host/runtime/puppeteer:1.0.0 domainname: local.brandbox.de volumes: - /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/temp:/var/www/temp/ - /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/share:/var/www/share/ env_file: - brandbox.docker.env working_dir: /var/www networks: internal: aliases: - puppeteer.${COMPOSE_PROJECT_NAME} labels: traefik.enable: "false" ports: - "8080" |
Die Umgebungsvariablen PUPPETEER_HOST
und PUPPETEER_PROTOCOL
müssen wie folgt befüllt werden:
Umgebungsvariable | Wert | ||
---|---|---|---|
|
| ||
|
|
Cluster-Konfiguration (Kubernetes)
Es muss ein Deployment mit dem Image
registry.brandbox.host/runtime/puppeteer:1.0.0
eingerichtet werdenEs muss ein Service mit dem Namen
service-puppeteer
eingerichtet werden, der auf dieses Deployment verweist
Die Umgebungsvariablen PUPPETEER_HOST
und PUPPETEER_PROTOCOL
müssen wie folgt befüllt werden
Umgebungsvariable | Wert |
---|---|
|
|
|
|
Diese Standardwerte existieren bereits im Rancher-Manager und werden beim Redeploy über die Gitlab-Pipeline automatisch gesetzt.
Verwendung
Das Image stellt eine einfache Rest-Schnittstelle bereit, mit der HTML-Dokumente an Puppeteer übergeben werden können:
https://[HOSTNAME]:8080/puppeteer?source=[SOURCE]&target=[TARGET]
Parameter (GET
)
Bezeichnung | Beschreibung | ||||||
---|---|---|---|---|---|---|---|
| Das zu verarbeitende HTML-Dokument. Die Angabe erfolgt als URL und kann entweder ein Dateifpad oder eine Webadresse darstellen.
| ||||||
| Ein Ordnerpfad für die Ablage des verarbeiteten HTML-Dokuments. Es wird immer ein Gesamtdokument sowie die Einzelseiten abgelegt. | ||||||
| Die Anzahl an Millisekunden, die der Verarbeitungsprozess auf eine Reaktion wartet. Standardmäßig wird hier | ||||||
| Die Anzahl an Millisekunden, die der Verarbeitungsprozess auf das Quelldokument ( | ||||||
| Wird dieser Parameter definiert und enthält den Wert |
Rückgabewerte (JSON
)
Bezeichnung | Beschreibung | |
---|---|---|
| Im Erfolgsfall | |
| Eine Zusammenfassung des Verabeitungsprozesses sowie Zusatzinformationen für eine Protokollierung. Diese Information wird als JSON-Objekt übergeben. | |
| Die im | |
| Der im | |
| Die innerhalb des Verarbeitungsprozesses ausgeführten HTTP-Anfragen und deren Ergebnisse (Status oder Fehlertext). | |
| Die innerhalb des Verarbeitungsprozesses eingesammelten Logmeldungen sowie deren Typ. | |
| Laufzeit des Verarbeitungsprozesses in Sekunden. | |
| Zusatzinformationen aus der Anfrage oder dem Verarbeitungsprozess. |
Beispiel
Codeblock | ||
---|---|---|
| ||
// GET http://[HOSTNAME]:8080/puppeteer?source=https%3A%2F%2Fexample.com%2Fsomething%2Fsomething.html&target=%2Fvar%2Fwww%2Fshare%2Fprivate%2Fexample { "result": true, "log": { "source": "https://example.com/something/something.html", "target": "/var/www/share/private/example", "requests": { "https://example.com/something/something.html": 200, "https://example.com/style.css": 200, // ... }, "messages": { { "type": "info", "text": "[document] waiting for document" }, { "type": "info", "text": "[document] creating page 1" }, // ... { "type": "info", "text": "[document] finished document" }, // ... }, "duration": 37.4, "additional": {/* ... */}, } } |