This post shows How-to setup a development environment for an eXist database.
eXistdb - Vitamins for your Applications
Docker all the things!
docker-compose.yaml for your “all-in-one solution for application building”:
version: "3.5" services: exist: image: evolvedbinary/exist-db:eXist-4.0.0 ports: - "127.0.0.1:8080:8080"
You are ready to test-drive the database without installing any files into your regular development environment.
Note: If your local port
8080is already in use please change the part
$ docker-compose up
http://localhost:8080/ or whatever port you have chosen.
Note: Default username and password is
adminwith an empty password.
At this point you should see the eXist dashboard similar to the screenshot below:
Since all data is stored inside the container, every time you recreate your eXist database you'll lose all your data and configuration.
If you want to persist your data through eXist restarts you can use
The following, updated
docker-compose.yaml, stores the eXist data on the host:
version: "3.5" services: exist: image: evolvedbinary/exist-db:eXist-4.3.0 ports: - "127.0.0.1:8080:8080" volumes: - type: bind source: ./exist-data target: /exist-data
PS: Once you finished the "Getting Started" you might be interested in From eXist Tutorial Application to Continuous Delivery
Just in case: There is a valuable Troubleshooting guide available.
For those (hopefully) rare cases where you need to attach a Java Debugger you can override the entrypoint in the
entrypoint: - /usr/lib/jvm/java-8-openjdk-amd64/bin/java - -Dexist.home=/exist - -Djava.awt.headless=true - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 - -jar - /exist/start.jar - jetty
If you are serious about working with eXist you may want to add the book “eXist” to your (physical) library.