GitHub user paulm17 edited a comment on the discussion: Deploy cluster on docker, with 2 clusters
Using the experience that I got with running pulsar with 2 clients via parallels on a mac. I was able to understand where to change the ports in the default configuration files.  Everything seems to run. Will update once the cluster is verified to be working. My docker compose: ``` version: '3.1' services: zk-west: image: apachepulsar/pulsar:latest container_name: zk-west restart: on-failure volumes: - ./data/west/zookeeper:/pulsar/data/zookeeper environment: - metadataStoreUrl=zk:zk-west:2181 - clusterName=west - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - PULSAR_MEM=-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m command: > bash -c "sed -i 's/clusterName=standalone/clusterName=west/' conf/standalone.conf && \ sed -i 's/clientPort=2181/clientPort=2181/' conf/zookeeper.conf && \ bin/apply-config-from-env.py conf/zookeeper.conf && \ bin/generate-zookeeper-config.sh conf/zookeeper.conf && \ exec bin/pulsar zookeeper" healthcheck: test: ["CMD", "bin/pulsar-zookeeper-ruok.sh"] interval: 10s timeout: 5s retries: 30 ports: - 2181:2181 # Init cluster metadata pulsar-init-west: container_name: pulsar-init-west hostname: pulsar-init-west image: apachepulsar/pulsar:latest command: > bin/pulsar initialize-cluster-metadata \ --cluster west \ --zookeeper zk-west:2181 \ --configuration-store zk-west:2181 \ --web-service-url http://broker-west:8080 \ --broker-service-url pulsar://broker-west:6650 depends_on: zk-west: condition: service_healthy # Start bookie bookie-west: image: apachepulsar/pulsar:latest container_name: bookie-west restart: on-failure environment: - clusterName=west - zkServers=zk-west:2181 - metadataServiceUri=metadata-store:zk:zk-west:2181 # otherwise every time we run docker compose uo or down we fail to start due to Cookie # See: https://github.com/apache/bookkeeper/blob/405e72acf42bb1104296447ea8840d805094c787/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java#L57-68 - advertisedAddress=bookie-west - BOOKIE_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-west: condition: service_healthy pulsar-init-west: condition: service_completed_successfully # Map the local directory to the container to avoid bookie startup failure due to insufficient container disks. volumes: - ./data/west/bookkeeper:/pulsar/data/bookkeeper command: bash -c "bin/apply-config-from-env.py conf/bookkeeper.conf && exec bin/pulsar bookie" # Start broker broker-west: image: apachepulsar/pulsar:latest container_name: broker-west hostname: broker-west restart: on-failure environment: - metadataStoreUrl=zk:zk-west:2181 - zookeeperServers=zk-west:2181 - clusterName=west - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - advertisedAddress=broker-west - advertisedListeners=external:pulsar://127.0.0.1:6650 - PULSAR_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-west: condition: service_healthy bookie-west: condition: service_started ports: - "6650:6650" - "8080:8080" command: bash -c " sed -i 's/brokerServicePort=6650/brokerServicePort=6650/' conf/broker.conf && \ sed -i 's#webServiceUrl=http://localhost:8080/#webServiceUrl=http://localhost:8080/#' conf/client.conf && \ sed -i 's/webServicePort=8080/webServicePort=8080/' conf/broker.conf && \ bin/apply-config-from-env.py conf/broker.conf && exec bin/pulsar broker" zk-cent: image: apachepulsar/pulsar:latest container_name: zk-cent restart: on-failure volumes: - ./data/central/zookeeper:/pulsar/data/zookeeper environment: - metadataStoreUrl=zk:zk-cent:2182 - clusterName=cent - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - PULSAR_MEM=-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m command: > bash -c "sed -i 's/clusterName=standalone/clusterName=cent/' conf/standalone.conf && \ sed -i 's/clientPort=2181/clientPort=2182/' conf/zookeeper.conf && \ bin/apply-config-from-env.py conf/zookeeper.conf && \ bin/generate-zookeeper-config.sh conf/zookeeper.conf && \ exec bin/pulsar zookeeper" healthcheck: test: ["CMD", "bin/pulsar-zookeeper-ruok.sh"] interval: 10s timeout: 5s retries: 30 ports: - 2182:2182 # Init cluster metadata pulsar-init-central: container_name: pulsar-init-central hostname: pulsar-init-central image: apachepulsar/pulsar:latest command: > bin/pulsar initialize-cluster-metadata \ --cluster cent \ --zookeeper zk-cent:2182 \ --configuration-store zk-cent:2182 \ --web-service-url http://broker-cent:8081 \ --broker-service-url pulsar://broker-cent:6651 depends_on: zk-cent: condition: service_healthy # Start bookie bookie-cent: image: apachepulsar/pulsar:latest container_name: bookie-cent restart: on-failure environment: - clusterName=cent - zkServers=zk-cent:2182 - metadataServiceUri=metadata-store:zk:zk-cent:2182 # otherwise every time we run docker compose uo or down we fail to start due to Cookie # See: https://github.com/apache/bookkeeper/blob/405e72acf42bb1104296447ea8840d805094c787/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java#L57-68 - advertisedAddress=bookie-cent - BOOKIE_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-cent: condition: service_healthy pulsar-init-central: condition: service_completed_successfully # Map the local directory to the container to avoid bookie startup failure due to insufficient container disks. volumes: - ./data/central/bookkeeper:/pulsar/data/bookkeeper command: bash -c "bin/apply-config-from-env.py conf/bookkeeper.conf && exec bin/pulsar bookie" # Start broker broker-cent: image: apachepulsar/pulsar:latest container_name: broker-cent hostname: broker-cent restart: on-failure environment: - metadataStoreUrl=zk:zk-cent:2182 - zookeeperServers=zk-cent:2182 - clusterName=cent - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - advertisedAddress=broker-cent - advertisedListeners=external:pulsar://127.0.0.1:6651 - PULSAR_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-cent: condition: service_healthy bookie-cent: condition: service_started ports: - "6651:6651" - "8081:8081" command: bash -c " sed -i 's/brokerServicePort=6650/brokerServicePort=6651/' conf/broker.conf && \ sed -i 's#webServiceUrl=http://localhost:8080/#webServiceUrl=http://localhost:8081/#' conf/client.conf && \ sed -i 's/webServicePort=8080/webServicePort=8081/' conf/broker.conf && \ bin/apply-config-from-env.py conf/broker.conf && exec bin/pulsar broker" zk-east: image: apachepulsar/pulsar:latest container_name: zk-east restart: on-failure volumes: - ./data/east/zookeeper:/pulsar/data/zookeeper environment: - metadataStoreUrl=zk:zk-east:2183 - clusterName=east - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - PULSAR_MEM=-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m command: > bash -c "sed -i 's/clusterName=standalone/clusterName=east/' conf/standalone.conf && \ sed -i 's/clientPort=2181/clientPort=2183/' conf/zookeeper.conf && \ bin/apply-config-from-env.py conf/zookeeper.conf && \ bin/generate-zookeeper-config.sh conf/zookeeper.conf && \ exec bin/pulsar zookeeper" healthcheck: test: ["CMD", "bin/pulsar-zookeeper-ruok.sh"] interval: 10s timeout: 5s retries: 30 ports: - 2183:2183 # Init cluster metadata pulsar-init-east: container_name: pulsar-init-east hostname: pulsar-init-east image: apachepulsar/pulsar:latest command: > bin/pulsar initialize-cluster-metadata \ --cluster east \ --zookeeper zk-east:2183 \ --configuration-store zk-east:2183 \ --web-service-url http://broker-east:8082 \ --broker-service-url pulsar://broker-east:6652 depends_on: zk-east: condition: service_healthy # Start bookie bookie-east: image: apachepulsar/pulsar:latest container_name: bookie-east restart: on-failure environment: - clusterName=east - zkServers=zk-east:2183 - metadataServiceUri=metadata-store:zk:zk-east:2183 # otherwise every time we run docker compose uo or down we fail to start due to Cookie # See: https://github.com/apache/bookkeeper/blob/405e72acf42bb1104296447ea8840d805094c787/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java#L57-68 - advertisedAddress=bookie-east - BOOKIE_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-east: condition: service_healthy pulsar-init-east: condition: service_completed_successfully # Map the local directory to the container to avoid bookie startup failure due to insufficient container disks. volumes: - ./data/east/bookkeeper:/pulsar/data/bookkeeper command: bash -c "bin/apply-config-from-env.py conf/bookkeeper.conf && exec bin/pulsar bookie" # Start broker broker-east: image: apachepulsar/pulsar:latest container_name: broker-east hostname: broker-east restart: on-failure environment: - metadataStoreUrl=zk:zk-east:2183 - zookeeperServers=zk-east:2183 - clusterName=east - managedLedgerDefaultEnsembleSize=1 - managedLedgerDefaultWriteQuorum=1 - managedLedgerDefaultAckQuorum=1 - advertisedAddress=broker-east - advertisedListeners=external:pulsar://127.0.0.1:6652 - PULSAR_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m depends_on: zk-east: condition: service_healthy bookie-east: condition: service_started ports: - "6652:6652" - "8082:8082" command: bash -c " sed -i 's/brokerServicePort=6650/brokerServicePort=6652/' conf/broker.conf && \ sed -i 's#webServiceUrl=http://localhost:8080/#webServiceUrl=http://localhost:8082/#' conf/client.conf && \ sed -i 's/webServicePort=8080/webServicePort=8082/' conf/broker.conf && \ bin/apply-config-from-env.py conf/broker.conf && exec bin/pulsar broker" ``` GitHub link: https://github.com/apache/pulsar/discussions/22228#discussioncomment-8762222 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
