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

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

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

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
project: #PROJECT#
type: 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

Name

Wert

PDFREACTOR_HOST

service-pdfreactor

PDFREACTOR_PORT

9423

Service

Einstellung

Wert

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
type: 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