debezium / debezium/dbz

Document how to add jars to Debezium Server docker classpath [DBZ-3274]

Open
#439 0 comments 0 reactions 0 assignees View on GitHub
migrated-from-jira type/task
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.