#? This Compose File runs 6 services # Kafka, Zookeeper, and Kafka JDBC Connector # Producers, Consumers and Postgres DB services: zookeeper: image: "confluentinc/cp-zookeeper:7.4.3" environment: ZOOKEEPER_CLIENT_PORT: 2181 ports: - "2181:2181" kafka: build: context: ./Kafka dockerfile: Dockerfile.kafka ports: - "9092:9092" environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 depends_on: - zookeeper db: image: postgres:latest environment: POSTGRES_PASSWORD: password POSTGRES_DB: Logs ports: - "5432:5432" kafka-db-connector: build: context: ./Kafka dockerfile: Dockerfile.connector ports: - "8083:8083" environment: CONNECT_BOOTSTRAP_SERVERS: kafka:9092 CONNECT_REST_ADVERTISED_HOST_NAME: kafka-db-connector CONNECT_GROUP_ID: compose-connect-group CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" CONNECT_REST_PORT: 8083 CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components" depends_on: - kafka - db producers: build: context: ./Producers dockerfile: Dockerfile ports: - "5000:5000" working_dir: "/service" depends_on: - kafka - kafka-db-connector environment: DB_HOST: db DB_NAME: Logs DB_USER: postgres DB_PASSWORD: password consumers: build: context: ./Consumers dockerfile: Dockerfile working_dir: "/consumers" env_file: - .env environment: KAFKA_SERVER: kafka:9092 KAFKA_JDBC_CONNECTION_URL: jdbc:postgresql://db:5432/Logs DB_USERNAME: postgres DB_PASSWORD: password depends_on: - kafka - kafka-db-connector stdin_open: true tty: true