Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 17 Nächste Version anzeigen »

Für die Verwendung von Puppeteer zum Rendern von mehrseitigen HTML-Dokumenten wurde ein Runtime-Image bereitgestellt:

registry.brandbox.host/brandbox-product/runtime/puppeteer:latest

Enthaltene Software

SoftwareVersion
Debian11
Nginx1.18
PHP8.1
Node.js14
Composer2.3
brandbox/component-puppeteer1.0.0

Lokale Konfiguration (Traefik)

Das Image kann in einer docker-compose.yml wie folgt eingebunden werden:

puppeteer:
    image: registry.brandbox.host/brandbox-product/runtime/puppeteer:latest
    hostname: $COMPOSE_PROJECT_NAME
    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
      - proxy
    labels:
      traefik.enable: "true"
      traefik.backend.loadbalancer.method: "drr"
      traefik.docker.network: traefik_webgateway
      traefik.frontend.rule: "Host:puppeteer.$COMPOSE_PROJECT_NAME.local.brandbox.de"
      traefik.port: 8080
    ports:
      - "9000"
    expose:
      - "8080"

Die Umgebungsvariablen PUPPETEER_HOST und PUPPETEER_PROTOCOL müssen wie folgt befüllt werden (brandbox.docker.env):

UmgebungsvariableWert
PUPPETEER_HOSTpuppeteer.$COMPOSE_PROJECT_NAME.local.brandbox.de  (wie in docker-compose.yml definiert)
PUPPETEER_PROTOCOL https

Cluster-Konfiguration (Kubernetes)

  • Es muss ein Deployment mit dem Image registry.brandbox.host/brandbox-product/runtime/puppeteer:latest eingerichtet werden
  • Es 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

UmgebungsvariableWert
PUPPETEER_HOSTservice-puppeteer:8080
PUPPETEER_PROTOCOL http

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://service-url/puppeteer?source=SOURCE&target=TARGET

Parameter (GET)

BezeichnungBeschreibung
source

Das zu rendernde HTML-Dokument,

targetEin Datei-Pfad für die Ablage des erstellten mehrseitigen Dokuments
timeoutDie Anzahl an Millisekunden, die der Renderprozess auf eine Reaktion wartet. Standardmäßig wird hier 60000 für 60 Sekunden gesetzt
abortDieses Argument muss entweder weggelassen oder gesetzt werden. Falls gesetzt, wird der Render-Prozess bei einem Fehler sofort abgebrochen, falls es nicht gesetzt wurde, werden Fehlermeldungen zwar protokolliert aber übergangen.

Rückgabewerte (JSON)

BezeichnungBeschreibung
result

true für erfolgreiche Konvertierung, false im Fehlerfall

logDie Konsolen-Ausgabe von Puppeteer
Beispiel
{
	"result": true,
	"log": [
		"file:///var/www/normal.html",
		"file:///var/www/normal.html 200",
		"https://example.brandbox.de/temp/public/framework/fractal/rendered/print-styleguide.css",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/16126a.tif",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/brandbox_logo.eps",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/example.pdf",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/konmedia_logo.eps",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-document.js",
		"https://example.brandbox.de/temp/public/framework/fractal/rendered/print-styleguide.css 200",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-document.js 200",
		"https://example.brandbox.de/temp/public/framework/fractal/fonts/roboto-normal-400.woff2",
		"https://example.brandbox.de/temp/public/framework/fractal/fonts/roboto-normal-700.woff2",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-element.js",
		"https://example.brandbox.de/temp/public/framework/fractal/fonts/roboto-normal-400.woff2 200",
		"https://example.brandbox.de/temp/public/framework/fractal/fonts/roboto-normal-700.woff2 200",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-element.js 200",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-table.js",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-table.js 200",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-paragraph.js",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-paragraph.js 200",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-page.js",
		"https://example.brandbox.de/temp/public/framework/fractal/js/print-page.js 200",
		"Created 1 pages",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/konmedia_logo.eps 200",
		"Created 2 pages",
		"https://example.brandbox.de?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/brandbox_logo.eps 200",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/16126a.tif 200",
		"https://example.brandbox.de/?request=Fractal/Fractal.image&filename=share/public/client-1/domain-1/Testbilder/example.pdf 200",
		"Created 3 pages",
		"Created 4 pages",
		"Created 5 pages",
		"Created 6 pages",
		"Created 7 pages",
		"Created 8 pages",
		"Created 9 pages",
		"Created 10 pages",
		"Created 11 pages",
		"Document processing took 3.323 seconds",
		"Finished in 3.558 seconds (11 pages)"
	]
}
  • Keine Stichwörter