I have created kogito quarkus application. And this application needs to some services to interact with. I created docker-compose file, which contains 7 services(zookeper, kafka, infinispan, management-console, task-console, keycloak and data-index). All services running except data-index service. data-index can't connected with kafka. Below my docker-compose file.
version: '2.1'
services:
infinispan:
image: infinispan/server:14.0.5.Final
container_name: infinispan
ports:
- "11222:11222"
command: "-c infinispan-demo.xml"
volumes:
- ./infinispan/infinispan.xml:/opt/infinispan/server/conf/infinispan-demo.xml:z
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:11222/rest/v2/cache-managers/default/health/status" ]
interval: 1s
timeout: 1s
retries: 50
zookeeper:
container_name: zookeeper
image: strimzi/kafka:0.20.1-kafka-2.6.0
command: [
"sh", "-c",
"bin/zookeeper-server-start.sh config/zookeeper.properties"
]
ports:
- "2181:2181"
environment:
LOG_DIR: "/tmp/logs"
kafka:
image: strimzi/kafka:0.20.1-kafka-2.6.0
container_name: kafka
command: [
"sh", "-c",
"bin/kafka-server-start.sh config/server.properties --override inter.broker.listener.name=$${KAFKA_INTER_BROKER_LISTENER_NAME} --override listener.security.protocol.map=$${KAFKA_LISTENER_SECURITY_PROTOCOL_MAP} --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}"
]
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 0
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://kafka:9092
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
LOG_DIR: "/tmp/logs"
keycloak:
container_name: keycloak
image: quay.io/keycloak/keycloak:legacy
ports:
- "8480:8080"
volumes:
- ./keycloak/kogito-realm.json:/tmp/kogito-realm.json
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8080/auth/realms/kogito" ]
interval: 1s
timeout: 1s
retries: 50
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
KEYCLOAK_IMPORT: /tmp/kogito-realm.json
data-index:
container_name: data-index
image: quay.io/kiegroup/kogito-data-index-infinispan:1.41
ports:
- "8180:8080"
depends_on:
kafka:
condition: service_started
infinispan:
condition: service_healthy
volumes:
- ./persistence/:/home/kogito/data/protobufs/
environment:
QUARKUS_INFINISPAN_CLIENT_USE_AUTH: "false"
QUARKUS_INFINISPAN_CLIENT_HOSTS: infinispan:11222
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
KOGITO_DATA_INDEX_PROPS: -Dkogito.protobuf.folder=/home/kogito/data/protobufs/
management-console:
container_name: management-console
image: quay.io/kiegroup/kogito-management-console:1.41
ports:
- 8280:8080
depends_on:
data-index:
condition: service_started
keycloak:
condition: service_healthy
volumes:
- ./svg/:/home/kogito/data/svg/
environment:
KOGITO_DATAINDEX_HTTP_URL: http://${DOCKER_GATEWAY_HOST:-host.docker.internal}:8180/graphql
QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
KOGITO_MANAGEMENT_CONSOLE_PROPS: -Dkogito.consoles.keycloak.config.url=http://localhost:8480/auth -Dkogito.consoles.keycloak.config.health-check-url=http://localhost:8480/auth/realms/kogito/.well-known/openid-configuration -Dkogito.svg.folder.path=/home/kogito/data/svg
task-console:
container_name: task-console
image: quay.io/kiegroup/kogito-task-console:1.41
ports:
- 8380:8080
depends_on:
data-index:
condition: service_started
keycloak:
condition: service_healthy
environment:
KOGITO_DATAINDEX_HTTP_URL: http://${DOCKER_GATEWAY_HOST:-host.docker.internal}:8180/graphql
QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
KOGITO_TASK_CONSOLE_PROPS: -Dkogito.consoles.keycloak.config.url=http://localhost:8480/auth -Dkogito.consoles.keycloak.config.health-check-url=http://localhost:8480/auth/realms/kogito/.well-known/openid-configuration
I'm getting below log from data-index service:
[org.apa.kaf.cli.NetworkClient] (smallrye-kafka-consumer-thread-1) [Consumer clientId=kafka-consumer-kogito-processinstances-events, groupId=kogito-data-index-processinstances] Connection to node 0 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
I specified environment variable on data-index like KAFKA_BOOTSTRAP_SERVERS: kafka:9092
. But it tries to connect localhost rather than kafka.
From data-index services terminal I write
getent hosts kafka
and it responds with
172.30.0.5 kafka
.