Connecting to the official eXist-db Docker image

<oXygen/> general issues.
nberns
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

Hi,

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.

https://github.com/eXist-db/exist/tree/ ... 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 (https://github.com/eXist-db/documentati ... -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,
Nils

adrian
Posts: 2736
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

Hello,

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.
e.g.
https://exist-db.org/exist/webstart/exist.jnlp

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.
Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

Post Reply