diff --git a/docker-compose.yml b/docker-compose.yml index e2ef50a..1bd3869 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,36 +2,127 @@ version: '3' services: - zookeeper: - image: 'bitnami/zookeeper:3.8.0' + redpanda-0: + command: + - redpanda + - start + - --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:19092 + # Address the broker advertises to clients that connect to the Kafka API. + # Use the internal addresses to connect to the Redpanda brokers' + # from inside the same Docker network. + # Use the external addresses to connect to the Redpanda brokers' + # from outside the Docker network. + - --advertise-kafka-addr internal://redpanda-0:9092,external://localhost:19092 + - --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:18082 + # Address the broker advertises to clients that connect to the HTTP Proxy. + - --advertise-pandaproxy-addr internal://redpanda-0:8082,external://localhost:18082 + - --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:18081 + # Redpanda brokers use the RPC API to communicate with eachother internally. + - --rpc-addr redpanda-0:33145 + - --advertise-rpc-addr redpanda-0:33145 + # Tells Seastar (the framework Redpanda uses under the hood) to use 1 core on the system. + - --smp 1 + # The amount of memory to make available to Redpanda. + - --memory 1G + # Mode dev-container uses well-known configuration properties for development in containers. + - --mode dev-container + # enable logs for debugging. + - --default-log-level=debug + image: docker.redpanda.com/redpandadata/redpanda:v23.2.14 + container_name: redpanda-0 + volumes: + - redpanda-0:/var/lib/redpanda/data +# networks: +# - redpanda_network ports: - - '2181:2181' - environment: - - ALLOW_ANONYMOUS_LOGIN=yes - - broker: - image: 'bitnami/kafka:3.1.1' + - 18081:18081 + - 18082:18082 + - 19092:19092 + - 19644:9644 + + redpanda-1: + command: + - redpanda + - start + - --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:29092 + - --advertise-kafka-addr internal://redpanda-1:9092,external://localhost:29092 + - --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:28082 + - --advertise-pandaproxy-addr internal://redpanda-1:8082,external://localhost:28082 + - --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:28081 + - --rpc-addr redpanda-1:33145 + - --advertise-rpc-addr redpanda-1:33145 + - --smp 1 + - --memory 1G + - --mode dev-container + - --default-log-level=debug + - --seeds redpanda-0:33145 + image: docker.redpanda.com/redpandadata/redpanda:v23.2.14 + container_name: redpanda-1 + volumes: + - redpanda-1:/var/lib/redpanda/data +# networks: +# - redpanda_network ports: - - '9092:9092' - environment: - - KAFKA_BROKER_ID=1 - - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092 - - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://broker:9092 - - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 - - ALLOW_PLAINTEXT_LISTENER=yes + - 28081:28081 + - 28082:28082 + - 29092:29092 + - 29644:9644 depends_on: - - zookeeper - - kafka-ui: - image: provectuslabs/kafka-ui + - redpanda-0 + + redpanda-2: + command: + - redpanda + - start + - --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:39092 + - --advertise-kafka-addr internal://redpanda-2:9092,external://localhost:39092 + - --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:38082 + - --advertise-pandaproxy-addr internal://redpanda-2:8082,external://localhost:38082 + - --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:38081 + - --rpc-addr redpanda-2:33145 + - --advertise-rpc-addr redpanda-2:33145 + - --smp 1 + - --memory 1G + - --mode dev-container + - --default-log-level=debug + - --seeds redpanda-0:33145 + image: docker.redpanda.com/redpandadata/redpanda:v23.2.14 + container_name: redpanda-2 + volumes: + - redpanda-2:/var/lib/redpanda/data +# networks: +# - redpanda_network ports: - - "8082:8080" + - 38081:38081 + - 38082:38082 + - 39092:39092 + - 39644:9644 + depends_on: + - redpanda-0 + + console: + container_name: redpanda-console + image: docker.redpanda.com/redpandadata/console:v2.3.1 +# networks: +# - redpanda_network + entrypoint: /bin/sh + command: -c 'echo "$$CONSOLE_CONFIG_FILE" > /tmp/config.yml; /app/console' environment: - - KAFKA_CLUSTERS_0_NAME=local - - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=broker:9092 - - KAFKA_CLUSTERS_0_ZOOKEEPER=zookeeper:2181 - links: - - broker + CONFIG_FILEPATH: /tmp/config.yml + CONSOLE_CONFIG_FILE: | + kafka: + brokers: ["redpanda-0:9092"] + schemaRegistry: + enabled: true + urls: ["http://redpanda-0:8081"] + redpanda: + adminApi: + enabled: true + urls: ["http://redpanda-0:9644"] + ports: + - 8085:8080 + depends_on: + - redpanda-0 db: image: postgres @@ -50,7 +141,7 @@ services: - "3000:3000" depends_on: - db - - broker + - redpanda-0 tasks-accounts-consumer: &tasks command: bundle exec racecar AccountsConsumer @@ -63,7 +154,7 @@ services: TEST_BROWSER_URL: http://chrome-server:4444 depends_on: - db - - broker + - redpanda-0 - chrome-server tasks: @@ -83,7 +174,7 @@ services: TEST_BROWSER_URL: http://chrome-server:4444 depends_on: - db - - broker + - redpanda-0 - chrome-server accounting-tasks-consumer: @@ -107,7 +198,7 @@ services: TEST_BROWSER_URL: http://chrome-server:4444 depends_on: - db - - broker + - redpanda-0 - chrome-server analytics-tasks-consumer: @@ -141,3 +232,6 @@ services: volumes: postgres_data: + redpanda-0: + redpanda-1: + redpanda-2: