pdfreactor
Für die Verwendung von PDFreactor ist ein separates Runtime-Image notwendig:
registry.brandbox.host/runtime/pdfreactor:12.0.2
Enthaltene Software
Software | Version |
---|---|
PDFreactor | registry.brandbox.host/runtime/pdfreactor:12.0.2 |
Konfiguration für docker-compose
Das Image kann in einer docker-compose.yml
wie folgt eingebunden werden:
pdfreactor:
ports:
- "9423"
image: registry.brandbox.host/runtime/pdfreactor:12.0.2
environment:
JAVA_OPTIONS: "-Xmx2g -Dcom.realobjects.pdfreactor.webservice.threadPoolSize=4"
networks:
internal:
aliases:
- pdfreactor.${COMPOSE_PROJECT_NAME}.local.brandbox.de
volumes:
- /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/temp:/srv/brandbox/temp/
- /mnt/nfsstorage/${COMPOSE_PROJECT_NAME}/share:/srv/brandbox/share/
- ./config/pdfreactor:/ro/config
Folgende Umgebungsvariablen müssen gesetzt werden (brandbox.docker.env
):
Umgebungsvariable | Wert |
---|---|
PDFREACTOR_HOST | pdfreactor.$COMPOSE_PROJECT_NAME.local.brandbox.de (wie in docker-compose.yml definiert) |
PDFREACTOR_PORT | 9423 |
brandbox.docker.env
PDFREACTOR_HOST=pdfreactor.{COMPOSE_PROJECT_NAME}.brandbox.de (wie in docker-compose.yml definiert)
PDFREACTOR_PORT=9423
Zusätzliche Konfiguration über Bind-Mount
Konfigurationsdateien müssen per Bind-Mount in den Container gemountet werden. Dazu muss der Ordner ./config/pdfreactor
parallel zu docker-compose.yml
vor dem Ausführen von up
angelegt werden.
Der Ordner muss die folgende Datei enthalten:
pdfreactorwebservice.config
securitySettings.defaults.allowFileSystemAccess=true
securitySettings.defaults.allowSameBasePath=true
securitySettings.hideVersionInfo=true
Die Datei enthält Sicherheitseinstellungen, die für den Betrieb von PDFreactor notwendig sind.
Cluster-Konfiguration (Kubernetes)
Die Konfiguration im Kubernetes-Cluster wird über den brandbox-HelmChart geregelt. Dieser deployed folgende Ressourcen:
Deployment
Einstellung | Wert |
---|---|
Image | registry.brandbox.host/runtime/pdfreactor:11.6.9 |
ImagePullSecret | Das Registry-Secret für registry.brandbox.host/runtime |
Volumes | Das für Application konfigurierte Volume mit folgenden Mountpoints: |
Labels | purpose: deployment-#NAMESPACE#-pdfreactor #NAMESPACE# = Kubernetes-Namespace |
Umgebungsvariablen | JAVA_OPTIONS: "-Xmx2g -Dcom.realobjects.pdfreactor.webservice.threadPoolSize=4" |
Auf dem Volume muss im Ordner /ro/config
eine Konfigurationsdatei pdfreactorwebservice.config
mit folgendem Inhalt angelegt werden:
pdfreactorwebservice.config
Application-Container
Folgende Umgebungsvariablen müssen für den Application-Container gesetzt sein:
Name | Wert |
---|---|
PDFREACTOR_HOST | service-pdfreactor |
PDFREACTOR_PORT | 9423 |
Service
Einstellung | Wert |
---|---|
Name | service-pdfreactor |
Selektor | purpose: deployment-#NAMESPACE#-pdfreactor (s.o.) |
Port-Mapping | Der TCP-Port 9423 muss nach außen geöffnet werden |
Labels | run: service-pdfreactor |
Weitere Konfigurationshinweise
PHP-Konfiguration
Der PDFreactor-Webservice nutzt Socker-Verbindungen über PHP. Hier greift die PHP-Einstellung default_socket_timeout.
Diese Einstellungen ist in component-pdfreactor ab Version 11.3.0.9 auf 600 Sekunden gesetzt. Wird diese Komponente nicht genutzt, muss die Einstellungen via ini_set in der verwendeten Client-Implementierung gesetzt werden, falls es Probleme mit der Verarbeitung größerer HTML-Dokumente gibt.
Speicherbedarf
Bei Verwendung von PDF-Dateien mit vielen / großen Bildern benötigt PDFreactor u.U. mehr als die standardmäßig zugewiesenen 2G RAM.
PDFreactor läuft in diesem Fall in einen Fehler, das Log des PDFreactor-Containers enthält eine Fehlermeldung bzgl. "Java Heap Size" (PDFreactor 11) bzw. "Service ran out of memory" (PDFreactor 12).
In diesem Fall muss der zur Verfügung gestellte Speicher über die JAVA_OPTIONS-Anweisung "-Xmx" erhöht werden:
-Xmx2g # 2G Speicher
-Xmx4g # 4G Speicher
Der dem Container zur Verfügung gestellte Speicher muss ebenfalls mindestens diesem Wert entsprechen