Connecting to the official eXist-db Docker image

<oXygen/> general issues.
Posts: 1
Joined: Thu Jun 24, 2021 6:04 pm

Connecting to the official eXist-db Docker image

Post by nberns » Thu Jun 24, 2021 10:04 pm


I have an exist-db 5.2.0 instance running locally in a Docker container. It is a minimal image you obtain from the official exist-db git repository. See the link below for description. The right tag is "release" not "latest" in my case. ... s-filtered

I use oxygen 23.1.

In order to connect oxygen to exist I copied the lib directory from the container to a location that oxygen can access.
e.g. via the command

Code: Select all

docker cp container_name:/exist/lib /path/to/location/on/your/system
The container seemed to work just fine, however, connecting to oxygen did not. The lib folder contains one file only, exist.uber.jar

From this thread ( ... -591384376) I know that exist is built into this uber.jar alone, and how jars can be added. Instead of adjusting the Dockerfile from exist's git repository, I used the exist image as a baseline for a new image. The corresponding Dockerfile looks like so

Code: Select all

FROM existdb/existdb:release
COPY build/*.jar /exist/lib/
The jars inside the build subdirectory are taken from a local full-fat exist-db 5.2.0 instance which I successfully could connect oxygen to. I copied the files from the directory localhost_8080, as I assumed these are the required for oxygen to work. All the jars seem to be referenced in the XML-files inside the container's exist/etc directory by default. From the above mentioned thread I assumed these references are mandatory.

This way I could connect oxygen to this minimalistic exist-db image. In oxygen I can manipulate the database and the result seems as expected.

Nonetheless, I was wondering if these jars are actually all oxygen needs or I am missing out important details.

I hope you can give me some advice on this.

Best regards,

Posts: 2740
Joined: Tue May 17, 2005 4:01 pm

Re: Connecting to the official eXist-db Docker image

Post by adrian » Tue Jun 29, 2021 11:25 am


Have you tried to Configure an eXist Connection Using the Built-in Wizard?
TBH, I'm not sure if it's possible to do this with the eXist-db instance from the Docker container. Oxygen expects "exist/webstart/exist.jnlp" path to be accessible at the provided Host and Port.

Even though WebStart is now obsolete technology, Oxygen makes use of the list of jars from the WebStart JNLP file and also retrieves those jars from the eXist-db server when using the wizard to create a connection.

If the connection wizard fails, see the docs on How to Configure an eXist Connection Manually. In short Oxygen needs:
  • The exist.jar file located in the base directory.
  • All JAR files in the lib/core/ directory.
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger

Post Reply