Docker
Image ¶
Docker Hub contains a repository with images that can be used.
You can mount your print apps in
/usr/local/tomcat/webapps/ROOT/print-apps.
You can mount additional font in
core/docker/usr/share/fonts/truetype/[font-file], and verity that she is correctly installed by
opening the view [base URL]/print/fonts.
Tunings ¶
The docker image can be tuned with several environment variables:
CATALINA_OPTS: Java startup parameters.DEFAULT_LOG_LEVEL: Set the default log level (defaults toINFO)TOMCAT_LOG_LEVEL: Set the tomcat log level (defaults toINFO)LOG_LEVEL: Set the mapfish print log level (defaults toINFO)SPRING_LOG_LEVEL: Set the Spring log level (defaults toWARN)JASPER_LOG_LEVEL: Set the JasperReports log level (defaults toWARN)APACHE_LOG_LEVEL: Set the Apache log level (defaults toWARN)SQL_LOG_LEVEL: Set the SQL (Hibernate) log level (defaults toWARN)SENTRY_LOG_LEVEL: Set the Sentry log level (defaults toERROR)-
SENTRY_REPORTING_LOG_LEVEL: Starting from what log level to report to Sentry (defaults toWARN) -
TOMCAT_LOG_TYPE:-
classic(default): The logs are human readable. Access logs are going to stdout and the other logs are going to stderr. -
json: The logs will be formatted in a JSON suitable for logstash. Access logs are going to stdout and the other logs are going to stderr. -
logstash: The logs will be formatted in a JSON suitable for logstash (@cee) and sent by syslog/UDP. The access logs are going to stdout in json format. More variables are available for this mode:TOMCAT_LOG_HOST: the target hostTOMCAT_LOG_PORT: the target port
-
-
EXTRA_JARS: If set, directory where extra JAR files are taken from. Can be used, for example, to add fonts. -
PRINT_YAML_MAX_ALIASES: Set the YAML max alias, see also (defaults to50).
If you want to tune properties from
mapfish-spring.properties
You can override them by adding -D options to the CATALINA_OPTS environment
variable.
Sentry integration ¶
You can enable Sentry crash reports by adding a parameter to the
CATALINA_OPTS environment variable with the DSN provided by sentry:
-Dsentry.dsn=https://public:private@host:port/project_id
Other parameters are documented here: https://docs.sentry.io/clients/java/config/
Graceful stop ¶
The container can be stopped gracefully by calling the docker-pre-stop-print script. This
script will trigger a graceful stop, by stopping starting new jobs and waiting for the current jobs to
finish.
In Kubernetes you can set it as a preStop hook
lifecycle:
preStop:
exec:
command:
- /usr/local/tomcat/bin/docker-pre-stop-print
- $(PRINT_TERMINATION_GRACE_PERIOD_SECONDS)