Document how to add jars to Debezium Server docker classpath [DBZ-3274]
- Dominant language
- HTML
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
Migrated from [DBZ-3274](https://issues.redhat.com/browse/DBZ-3274)
Adding a logging jar to the classpath (ie. commons-logging-1.2.jar) appears to be required to get debezium server running without error. This appears to be the case for both running the dist locally or in the docker. Additionally, adding extensions such as a custom StreamNameMapper would also require adding jars.
However, I am not sure how to add jars to the docker without overriding the command being run. I believe "-cp" will override any CLASSPATH that is set assuming I want to mount the jars in as a volume. I do not think I should override the entire "lib" directory, and don't have a good way to mount individual files into the "lib" directory. Specifically looking at the run.sh in `debezium/server:1.5.0.Beta2`:
{code:java}
if [ -z "$JAVA_HOME" ]; then
JAVA_BINARY="java"
else
JAVA_BINARY="$JAVA_HOME/bin/java"
fi
RUNNER=$(ls debezium-server-*runner.jar)
exec $JAVA_BINARY $DEBEZIUM_OPTS $JAVA_OPTS -cp "$RUNNER:conf:lib/*" io.debezium.server.Main
{code}
Contributor guide
Research direction
The issue references run.sh in debezium/server:1.5.0.Beta2 and its Java -cp invocation; start by examining that script and the Docker image layout. Document how to add external JARs without replacing the command or lib directory, covering the mounting and classpath steps for both local and Docker usage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java
- Domain
- devops, documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100