version: "3.8" services: broker: image: confluentinc/cp-kafka:7.4.0 hostname: broker networks: - lily-net container_name: broker ports: - "9092:9092" - "9101:9101" - "9093:9093" environment: KAFKA_NODE_ID: 1 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT' KAFKA_LISTENERS: 'PLAINTEXT://:9092,CONTROLLER://:9093' KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://broker:9092' KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:9093' KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_JMX_PORT: 9101 KAFKA_JMX_HOSTNAME: localhost KAFKA_PROCESS_ROLES: 'broker,controller' KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT' KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER' KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs' # Replace CLUSTER_ID with a unique base64 UUID using "bin/kafka-storage.sh random-uuid" # See https://docs.confluent.io/kafka/operations-tools/kafka-tools.html#kafka-storage-sh CLUSTER_ID: 'MkU3OEVBNTcwNTJENDM2Qk' neo4j: container_name: neo4j image: neo4j:5.16.0 ports: - 7474:7474 - 7687:7687 environment: - NEO4J_AUTH=neo4j/password - NEO4J_apoc_export_file_enabled=true - NEO4J_apoc_import_file_enabled=true - NEO4J_apoc_import_file_use__neo4j__config=true - NEO4J_PLUGINS=["apoc", "graph-data-science"] volumes: - neo4j-data:/data - neo4j-logs:/logs networks: - lily-net # Your application service lily: # build: . image: atlan-lily:latest networks: - lily-net ports: - "8080:8080" depends_on: - broker volumes: # Optional volume for Neo4j data persistence neo4j-data: neo4j-logs: networks: lily-net: driver: bridge