docker-compose-kafka.yaml 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. version: '3.9'
  2. services:
  3. zookeeper:
  4. image: docker.io/library/zookeeper:3.6
  5. ports:
  6. - "2181:2181"
  7. container_name: zookeeper
  8. hostname: zookeeper
  9. networks:
  10. emqx_bridge:
  11. ssl_cert_gen:
  12. # see https://github.com/emqx/docker-images
  13. image: ghcr.io/emqx/certgen:latest
  14. container_name: ssl_cert_gen
  15. user: "${DOCKER_USER:-root}"
  16. volumes:
  17. - /tmp/emqx-ci/emqx-shared-secret:/var/lib/secret
  18. kdc:
  19. hostname: kdc.emqx.net
  20. image: ghcr.io/emqx/emqx-builder/5.1-3:1.14.5-25.3.2-1-ubuntu20.04
  21. container_name: kdc.emqx.net
  22. expose:
  23. - 88 # kdc
  24. - 749 # admin server
  25. # ports:
  26. # - 88:88
  27. # - 749:749
  28. networks:
  29. emqx_bridge:
  30. volumes:
  31. - /tmp/emqx-ci/emqx-shared-secret:/var/lib/secret
  32. - ./kerberos/krb5.conf:/etc/kdc/krb5.conf
  33. - ./kerberos/krb5.conf:/etc/krb5.conf
  34. - ./kerberos/run.sh:/usr/bin/run.sh
  35. command: run.sh
  36. kafka_1:
  37. image: wurstmeister/kafka:2.13-2.8.1
  38. # ports:
  39. # - "9192-9195:9192-9195"
  40. container_name: kafka-1.emqx.net
  41. hostname: kafka-1.emqx.net
  42. depends_on:
  43. kdc:
  44. condition: service_started
  45. zookeeper:
  46. condition: service_started
  47. ssl_cert_gen:
  48. condition: service_completed_successfully
  49. environment:
  50. KAFKA_BROKER_ID: 1
  51. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  52. KAFKA_LISTENERS: PLAINTEXT://:9092,SASL_PLAINTEXT://:9093,SSL://:9094,SASL_SSL://:9095,LOCAL_PLAINTEXT://:9192,LOCAL_SASL_PLAINTEXT://:9193,LOCAL_SSL://:9194,LOCAL_SASL_SSL://:9195,TOXIPROXY_PLAINTEXT://:9292,TOXIPROXY_SASL_PLAINTEXT://:9293,TOXIPROXY_SSL://:9294,TOXIPROXY_SASL_SSL://:9295
  53. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1.emqx.net:9092,SASL_PLAINTEXT://kafka-1.emqx.net:9093,SSL://kafka-1.emqx.net:9094,SASL_SSL://kafka-1.emqx.net:9095,LOCAL_PLAINTEXT://localhost:9192,LOCAL_SASL_PLAINTEXT://localhost:9193,LOCAL_SSL://localhost:9194,LOCAL_SASL_SSL://localhost:9195,TOXIPROXY_PLAINTEXT://toxiproxy.emqx.net:9292,TOXIPROXY_SASL_PLAINTEXT://toxiproxy.emqx.net:9293,TOXIPROXY_SSL://toxiproxy.emqx.net:9294,TOXIPROXY_SASL_SSL://toxiproxy.emqx.net:9295
  54. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT,SSL:SSL,SASL_SSL:SASL_SSL,LOCAL_PLAINTEXT:PLAINTEXT,LOCAL_SASL_PLAINTEXT:SASL_PLAINTEXT,LOCAL_SSL:SSL,LOCAL_SASL_SSL:SASL_SSL,TOXIPROXY_PLAINTEXT:PLAINTEXT,TOXIPROXY_SASL_PLAINTEXT:SASL_PLAINTEXT,TOXIPROXY_SSL:SSL,TOXIPROXY_SASL_SSL:SASL_SSL
  55. KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
  56. KAFKA_SASL_ENABLED_MECHANISMS: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512,GSSAPI
  57. KAFKA_SASL_KERBEROS_SERVICE_NAME: kafka
  58. KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
  59. KAFKA_OPTS: "-Djava.security.auth.login.config=/etc/kafka/jaas.conf"
  60. KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
  61. KAFKA_CREATE_TOPICS_NG: test-topic-one-partition:1:1,test-topic-two-partitions:2:1,test-topic-three-partitions:3:1,
  62. KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
  63. KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.auth.SimpleAclAuthorizer
  64. KAFKA_SSL_TRUSTSTORE_LOCATION: /var/lib/secret/kafka.truststore.jks
  65. KAFKA_SSL_TRUSTSTORE_PASSWORD: password
  66. KAFKA_SSL_KEYSTORE_LOCATION: /var/lib/secret/kafka.keystore.jks
  67. KAFKA_SSL_KEYSTORE_PASSWORD: password
  68. KAFKA_SSL_KEY_PASSWORD: password
  69. networks:
  70. emqx_bridge:
  71. volumes:
  72. - /tmp/emqx-ci/emqx-shared-secret:/var/lib/secret
  73. - ./kafka/jaas.conf:/etc/kafka/jaas.conf
  74. - ./kafka/kafka-entrypoint.sh:/bin/kafka-entrypoint.sh
  75. - ./kerberos/krb5.conf:/etc/kdc/krb5.conf
  76. - ./kerberos/krb5.conf:/etc/krb5.conf
  77. command: kafka-entrypoint.sh