Docker Image Debezium UI error

809 views
Skip to first unread message

Naimesh Vaja

unread,
Mar 26, 2024, 10:09:36 AM3/26/24
to debezium
I'm implementing CDC with Postgres and Debezium. I'm using debezium/debezium-ui:2.4 image for debezium UI. I'm getting below error while creating connector.

```
2024-03-26 10:40:28 2024-03-26 09:40:28,306 WARN [io.deb.con.res.ResteasyWebApplicationExceptionMapper] (executor-thread-1) Unknown error, status code 404: org.jboss.resteasy.client.exception.ResteasyWebApplicationException: Unknown error, status code 404
2024-03-26 10:40:28 at org.jboss.resteasy.client.exception.WebApplicationExceptionWrapper.wrap(WebApplicationExceptionWrapper.java:104)
2024-03-26 10:40:28 at org.jboss.resteasy.microprofile.client.DefaultResponseExceptionMapper.toThrowable(DefaultResponseExceptionMapper.java:42)
2024-03-26 10:40:28 at org.jboss.resteasy.microprofile.client.ExceptionMapping$HandlerException.mapException(ExceptionMapping.java:60)
2024-03-26 10:40:28 at org.jboss.resteasy.microprofile.client.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:175)
2024-03-26 10:40:28 at com.sun.proxy.$Proxy36.isTopicCreationEnabled(Unknown Source)
2024-03-26 10:40:28 at io.debezium.configserver.rest.KafkaConnectResource.isKafkaConnectTopicCreationEnabled(KafkaConnectResource.java:75)
2024-03-26 10:40:28 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-03-26 10:40:28 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2024-03-26 10:40:28 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2024-03-26 10:40:28 at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2024-03-26 10:40:28 at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
2024-03-26 10:40:28 at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)
2024-03-26 10:40:28 at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)
2024-03-26 10:40:28 at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)
2024-03-26 10:40:28 at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
2024-03-26 10:40:28 at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
2024-03-26 10:40:28 at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
2024-03-26 10:40:28 at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
2024-03-26 10:40:28 at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
2024-03-26 10:40:28 at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
2024-03-26 10:40:28 at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:82)
2024-03-26 10:40:28 at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:147)
2024-03-26 10:40:28 at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:93)
2024-03-26 10:40:28 at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)
2024-03-26 10:40:28 at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
2024-03-26 10:40:28 at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
2024-03-26 10:40:28 at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
2024-03-26 10:40:28 at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
2024-03-26 10:40:28 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2024-03-26 10:40:28 at java.base/java.lang.Thread.run(Thread.java:829)
2024-03-26 10:40:28
2024-03-26 10:40:48 2024-03-26 09:40:48,988 INFO [io.deb.con.CommonConnectorConfig] (executor-thread-1) Loading the custom source info struct maker plugin: io.debezium.connector.postgresql.PostgresSourceInfoStructMaker
2024-03-26 10:40:49 2024-03-26 09:40:49,529 INFO [io.deb.con.pos.PostgresConnector] (executor-thread-1) Successfully tested connection for jdbc:postgresql://postgres:${port}/postgres_db with user 'postgres'
2024-03-26 10:40:49 2024-03-26 09:40:49,549 INFO [io.deb.jdb.JdbcConnection] (pool-5-thread-1) Connection gracefully closed
2024-03-26 10:40:50 2024-03-26 09:40:50,431 INFO [io.deb.con.CommonConnectorConfig] (executor-thread-1) Loading the custom source info struct maker plugin: io.debezium.connector.postgresql.PostgresSourceInfoStructMaker

```

docker-compose file

```
version: '3.8'

services:
zookeeper:
image: confluentinc/cp-zookeeper:7.4.0
hostname: zookeeper
container_name: zookeeper
ports:
- '2181:2181'
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
healthcheck:
test: echo srvr | nc zookeeper 2181 || exit 1
start_period: 10s
retries: 20
interval: 10s
networks:
code-with-yu:

broker:
image: confluentinc/cp-kafka:7.4.0
hostname: broker
container_name: broker
ports:
- '29092:29092'
- '9092:9092'
- '9101:9101'
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_JMX_PORT: 9101
KAFKA_JMX_HOSTNAME: localhost
healthcheck:
test: nc -z localhost 9092 || exit -1
start_period: 15s
interval: 5s
timeout: 10s
retries: 10
networks:
code-with-yu:
schema_registry:
image: confluentinc/cp-schema-registry:3.3.0
hostname: schema_registry
container_name: schema_registry
depends_on:
- zookeeper
- broker
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema_registry
SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: 'zookeeper:2181'
SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_ORIGIN: '*'
SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_METHODS: 'GET,POST,PUT,OPTIONS'
networks:
- code-with-yu
connect:
image: confluentinc/cp-server-connect
hostname: connect
container_name: connect
depends_on:
- zookeeper
- broker
- schema_registry
networks:
- code-with-yu
ports:
- "8083:8083"
environment:
CONNECT_BOOTSTRAP_SERVERS: 'broker:29092'
CONNECT_REST_ADVERTISED_HOST_NAME: connect
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: compose-connect-group
CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema_registry:8081'
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema_registry:8081'
CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_ZOOKEEPER_CONNECT: 'zookeeper:2181'
volumes:
- ./plugins:/usr/share/confluent-hub-components
command:
- bash
- -c
- |
echo "Installing JDBC Sink Connector"
confluent-hub install --no-prompt confluentinc/kafka-connect-jdbc:latest
echo "Launching Kafka Connect worker"
/etc/confluent/docker/run & wait $!

control-center:
image: confluentinc/cp-enterprise-control-center:7.4.0
hostname: control-center
container_name: control-center
depends_on:
- schema_registry
- connect
- broker
ports:
- "9021:9021"
environment:
CONTROL_CENTER_BOOTSTRAP_SERVERS: 'broker:29092'
CONTROL_CENTER_REPLICATION_FACTOR: 1
CONTROL_CENTER_INTERNAL_TOPICS_PARTITIONS: 1
CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_PARTITIONS: 1
CONFLUENT_METRICS_TOPIC_REPLICATION: 1
CONFLIENT_METRICS_ENABLE: 'false'
PORT: 9021
CONTROL_CENTER_CONNECT_CONNECT-DEFAULT_CLUSTER: 'http://connect:8083'
CONTROL_CENTER_SCHEMA_REGISTRY_URL: "http://schema-registry:8081"
CONTROL_CENTER_CONNECT_HEALTHCHECK_ENDPOINT: '/connectors'
networks:
- code-with-yu
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9021/health" ]
interval: 30s
timeout: 10s
retries: 5

debezium:
image: debezium/connect:latest
container_name: debezium
hostname: debezium
depends_on:
postgres:
condition: service_healthy
broker:
condition: service_healthy
ports:
- '8093:8083'
environment:
BOOTSTRAP_SERVERS: broker:29092
CONNECT_REST_ADVERTISED_HOST_NAME: debezium
GROUP_ID: 1
CONFIG_STORAGE_TOPIC: connect_configs
STATUS_STORAGE_TOPIC: connect_statuses
OFFSET_STORAGE_TOPIC: connect_offsets
KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
ENABLE_DEBEZIUM_SCRIPTING: 'true'
healthcheck:
test:
[ 'CMD', 'curl', '--silent', '--fail', '-X', 'GET', 'http://localhost:8083/connectors', ]
start_period: 10s
interval: 10s
timeout: 5s
retries: 5
networks:
code-with-yu:

debezium-ui:
image: debezium/debezium-ui:2.4
platform: linux/x86_64
container_name: debezium-ui
hostname: debezium-ui
depends_on:
debezium:
condition: service_healthy
ports:
- '8080:8080'
environment:
KAFKA_CONNECT_URIS: http://debezium:8083
networks:
code-with-yu:

postgres:
image: postgres:latest
container_name: postgres
hostname: postgres
ports:
- '5432:5432'
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres_db
command: [ 'postgres', '-c', 'wal_level=logical' ]
healthcheck:
test: [ 'CMD', 'psql', '-U', 'postgres', '-c', 'SELECT 1' ]
interval: 10s
timeout: 5s
retries: 5
networks:
code-with-yu:

networks:
code-with-yu:
name: code-with-yu
driver: bridge
```

Can you please help to resolve this error or share any workaround to make it work?

René Kerner

unread,
Apr 8, 2024, 3:10:10 AM4/8/24
to debezium

Hello!

Unfortunately the UI container image is not yet updated to reflect the architectural changes that we made end of 2023.
I need to move the decision on when we are going to apply these changes to the image to Jiri to decide about the priority.

We'll get back to you soon!

Best, René
Reply all
Reply to author
Forward
0 new messages