orbeon-docker/README.md

2.1 KiB

Docker for Orbeon

A naive attempt to build docker images for Orbeon Forms

Currently working

To create an image of Orbeon CE using its embedded eXist database as its persistence layer:

$ docker-compose -f docker-compose-ce.yml -f docker-compose-embedded-exist.yml up

To create an image of Orbeon PE using its embedded eXist database as its persistence layer:

$ cp <my-licence-file> secrets/license.xml
$ docker-compose -f docker-compose-pe.yml -f docker-compose-embedded-exist.yml up

To create an image of Orbeon CE using a MySQL image as its persistence layer:

$ cp <mysql-jdbc-driver> mysql/tomcat/lib/
$ docker-compose -f docker-compose-ce.yml -f docker-compose-mysql.yml up

To create an image of Orbeon PE using a MySQL image as its persistence layer:

$ cp <postgres-jdbc-driver> postgres/tomcat/lib/
$ cp <my-licence-file> secrets/license.xml
$ docker-compose -f docker-compose-pe.yml -f docker-compose-postgres.yml up

To create an image of Orbeon CE using a Postgres image as its persistence layer:

$ cp <postgres-jdbc-driver> postgres/tomcat/lib/
$ docker-compose -f docker-compose-ce.yml -f docker-compose-postgres.yml up

To create an image of Orbeon PE using a Postgres image as its persistence layer:

$ cp <postgres-jdbc-driver> postgres/tomcat/lib/
$ cp <my-licence-file> secrets/license.xml
$ docker-compose -f docker-compose-pe.yml -f docker-compose-postgres.yml up

Timezones

Timezones can be tricky to configure using Docker (and docker-compose).

A common way to copy the host timezone in your containers is to share /etc/timezone as a volume:

    volumes:
      - "/etc/timezone:/etc/timezone:ro"

This requires, of course, that both your host and the containers relies on this configuration file.

TODO

  • Download JDBC drivers at build time (with the current version they need to be manually downloaded before the build)
  • Download the Orbeon database create scripts at build time (in the current version they are included in this repo)
  • Support other persistence layers
  • Use secrets for database credentials
  • Support modes, authentication, ...
  • Add user directories
  • ...