Last active
September 26, 2024 12:04
-
-
Save ram-pi/6e67f2a170be24a361b17a0e4626ebf5 to your computer and use it in GitHub Desktop.
Connect on Docker with Kafka on CCloud
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
services: | |
kafka-connect: | |
image: confluentinc/cp-server-connect:7.7.1 | |
hostname: kafka-connect | |
container_name: kafka-connect | |
healthcheck: | |
test: curl -fail --silent http://kafka-connect-1:8083/connectors --output /dev/null || exit 1 | |
interval: 10s | |
retries: 20 | |
start_period: 20s | |
environment: | |
CONNECT_REST_ADVERTISED_PORT: 8083 | |
CONNECT_REST_PORT: 8083 | |
CONNECT_LISTENERS: http://0.0.0.0:8083 | |
CONNECT_BOOTSTRAP_SERVERS: ${CCLOUD_BOOTSTRAP_SERVER} | |
CONNECT_SECURITY_PROTOCOL: SASL_SSL | |
CONNECT_SASL_MECHANISM: PLAIN | |
CONNECT_SASL_JAAS_CONFIG: "org.apache.kafka.common.security.plain.PlainLoginModule required username='${CCLOUD_API_KEY}' password='${CCLOUD_API_SECRET}';" | |
CONNECT_REST_ADVERTISED_HOST_NAME: kafka-connect | |
CONNECT_GROUP_ID: workshop-pier-kafka-connect | |
CONNECT_CONFIG_STORAGE_TOPIC: workshop-pier-connect-configs | |
CONNECT_OFFSET_STORAGE_TOPIC: workshop-pier-connect-offsets | |
CONNECT_STATUS_STORAGE_TOPIC: workshop-pier-connect-status | |
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter | |
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter | |
CONNECT_EXACTLY_ONCE_SOURCE_SUPPORT: enabled | |
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: ${SR_URL} | |
CONNECT_VALUE_CONVERTER_CONNECT_BASIC_AUTH_CREDENTIALS_SOURCE: USER_INFO | |
CONNECT_VALUE_CONVERTER_CONNECT_BASIC_AUTH_USER_INFO: ${SR_BASIC_AUTH} | |
CONNECT_SCHEMA_REGISTRY_URL: ${SR_URL} | |
CONNECT_BASIC_AUTH_CREDENTIALS_SOURCE: USER_INFO | |
CONNECT_BASIC_AUTH_USER_INFO: ${SR_BASIC_AUTH} | |
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 3 | |
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 3 | |
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 3 | |
CONNECT_TOPIC_CREATION_ENABLE: true | |
CONNECT_PLUGIN_PATH: /usr/share/java,/usr/share/confluent-hub-components,/data/connect-plugin-jars | |
# BRIDGE TO CLOUD | |
CONNECT_PRODUCER_BOOTSTRAP_SERVERS: ${CCLOUD_BOOTSTRAP_SERVER} | |
CONNECT_PRODUCER_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username='${CCLOUD_API_KEY}' password='${CCLOUD_API_SECRET}'; | |
CONNECT_PRODUCER_SECURITY_PROTOCOL: SASL_SSL | |
CONNECT_PRODUCER_SASL_MECHANISM: PLAIN | |
CONNECT_CONSUMER_BOOTSTRAP_SERVERS: ${CCLOUD_BOOTSTRAP_SERVER} | |
CONNECT_CONSUMER_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username='${CCLOUD_API_KEY}' password='${CCLOUD_API_SECRET}'; | |
CONNECT_CONSUMER_SECURITY_PROTOCOL: SASL_SSL | |
CONNECT_CONSUMER_SASL_MECHANISM: PLAIN | |
command: | |
- bash | |
- -c | |
- | | |
confluent-hub install --no-prompt mongodb/kafka-connect-mongodb:1.13.0 | |
/etc/confluent/docker/run | |
ports: | |
- 8083:8083 | |
ksqldb: | |
image: confluentinc/cp-ksqldb-server:7.7.1 | |
hostname: ksqldb | |
container_name: ksqldb | |
healthcheck: | |
test: curl -fail --silent http://ksqldb:8088/healthcheck --output /dev/null || exit 1 | |
interval: 10s | |
retries: 20 | |
start_period: 20s | |
environment: | |
KSQL_LISTENERS: http://0.0.0.0:8088 | |
KSQL_KSQL_STREAMS_BOOTSTRAP_SERVERS: ${CCLOUD_BOOTSTRAP_SERVER} | |
KSQL_KSQL_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username='${CCLOUD_API_KEY}' password='${CCLOUD_API_SECRET}'; | |
KSQL_KSQL_SECURITY_PROTOCOL: SASL_SSL | |
KSQL_KSQL_SASL_MECHANISM: PLAIN | |
KSQL_BOOTSTRAP_SERVERS: ${CCLOUD_BOOTSTRAP_SERVER} | |
KSQL_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username='${CCLOUD_API_KEY}' password='${CCLOUD_API_SECRET}'; | |
KSQL_SECURITY_PROTOCOL: SASL_SSL | |
KSQL_SASL_MECHANISM: PLAIN | |
KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: true | |
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: true | |
KSQL_KSQL_CONNECT_URL: http://kafka-connect:8083 | |
KSQL_KSQL_SCHEMA_REGISTRY_URL: ${SR_URL} | |
KSQL_KSQL_SCHEMA_REGISTRY_BASIC_AUTH_CREDENTIALS_SOURCE: USER_INFO | |
KSQL_KSQL_SCHEMA_REGISTRY_BASIC_AUTH_USER_INFO: ${SR_BASIC_AUTH} | |
KSQL_KSQL_SERVICE_ID: my-ksqldb | |
KSQL_KSQL_HIDDEN_TOPICS: ^_.* | |
KSQL_KSQL_INTERNAL_TOPICS_REPLICAS: 3 | |
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_REPLICATION_FACTOR: 3 | |
KSQL_INTERNAL_TOPICS_REPLICAS: 3 | |
KSQL_LOGGING_PROCESSING_TOPIC_REPLICATION_FACTOR: 3 | |
KSQL_KSQL_SINK_REPLICAS: 3 | |
KSQL_KSQL_STREAMS_REPLICATION_FACTOR: 3 | |
KSQL_KSQL_INTERNAL_TOPIC_REPLICAS: 3 | |
ports: | |
- 8088:8088 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Create an
.env
file like the one below: