Comment on page
Install with Docker
Using a prebuilt Docker image to install Joule has a few benefits: it already includes core, all processors, data connectors and pinned versions of all their dependencies. By contrast,
gradle buildtakes longer to run, and will always install the latest compatible versions of every dependency.
latest: Latest overall version of Joule + connectors and processors
<Major>.<Minor>.latest: Latest patch of Joule + plugins for
<Major>.<Minor>version family. For example,
1.0.latestincludes the latest patches for Joule Platform v1.0
Install an image using the
docker pull fractalworks/joule:<version_tag>
ENTRYPOINTfor Joule Docker images is the command
joule. You can bind-mount your project to /
app/jouleand use Joule as normal:
docker run -d --name=appName \
-p 1098:1098 \
-v $PWD/conf:/app/joule/conf \
-v $PWD/userlibs:/app/joule/userlibs \
-v $PWD/logs:/app/joule/logs: \
-v $PWD/data:/app/joule/data: \
--user joule \
--env-file $PWD/conf/app.env \
Modify $PWD to the directory where the configuration, user jars, logs and data are located on the local machine. Joule container will use these directories to configure the process and to write log and data files.
- Bind-mount sources must be an absolute path
- You may need to make adjustments to the docker networking setting depending on the specifics of your data sources or hosts.
Joule provides monitoring standard JMX beans, accessible on localhost port 1098. The following port is configured to enable remote monitoring through the use of tools such as JConsole, DataDog, VisualVm etc,.
- 1098 JMX port
The JMX port will be automatically exposed when using docker run -P.
A Joule container is configured through the
app.envwhich sets up the required data sources, including reference data, use case processing and target publishing sinks.
app.envfile defines the key configurations for Joule process to start. Each file specifies key components to load, register and startup.
Additionally, reference data sources, for event enrichment, can be added the following to
yamlfiles will reside within the conf directory.
Custom user components are deployed to the Joule classpath from the
Joule generates standard log4j logging file, using logback binding, which is configured to exist beyond the lifetime of the container. A default
Joule has the ability to generate event files which are persisted to a configured volume mount. This directory is not required if event data is not saved to file.
In particular, the Dockerfile supports building images:
- Images that all plugins maintained by Fractalworks Labs
Please note that, if you go the route of building your own Docker images, we are unable to offer dedicated support for custom use cases. If you run into problems, you are welcome to open an issue in the
Joule Corerepository. If many users are requesting the same enhancement, we will tag the issue
help_wantedand invite community contribution.