WIP
[demos/kafka/demos-kafka-payment-system-setup] / docker-compose.yml
index 7629d23..c82033a 100644 (file)
@@ -3,7 +3,7 @@ services:
   zookeeper:
     image: confluentinc/cp-zookeeper:6.2.0
     ports:
-      - "2181:2181"
+      - 2181:2181
     environment:
       ZOOKEEPER_CLIENT_PORT: 2181
 
@@ -20,12 +20,110 @@ services:
     depends_on:
       - zookeeper
 
-  transfer:
-    image: juplo/payment-service-demo--transfer:1.1.0
-    ports:
-      - "8091:8080"
+  messages:
+    image: confluentinc/cp-kafka:6.2.0
+    command: >
+      kafka-console-consumer
+        --bootstrap-server kafka:9093
+        --from-beginning
+        --property print.key=true
+        --property key.separator=": "
+        --topic transfers
+
+  peter:
+    image: juplo/payment-service-demo--transfer:2.2-SNAPSHOT
+    environment:
+      server.port: 8091
+      juplo.transfer.group-instance-id: peter
+      juplo.transfer.local-state-store-path: /var/lib/app/peter.bin
+      juplo.transfer.state-store-interval: 20
+      juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
+      juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
+      juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
+      juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
+      juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
+    volumes:
+      - data:/var/lib/app
+    network_mode: host
+    depends_on:
+      - zookeeper
+      - kafka
+
+  ute:
+    image: juplo/payment-service-demo--transfer:2.2-SNAPSHOT
+    environment:
+      server.port: 8092
+      juplo.transfer.group-instance-id: ute
+      juplo.transfer.local-state-store-path: /var/lib/app/ute.bin
+      juplo.transfer.state-store-interval: 20
+      juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
+      juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
+      juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
+      juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
+      juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
+    volumes:
+      - data:/var/lib/app
+    network_mode: host
+    depends_on:
+      - zookeeper
+      - kafka
+
+  franz:
+    image: juplo/payment-service-demo--transfer:2.2-SNAPSHOT
+    environment:
+      server.port: 8093
+      juplo.transfer.group-instance-id: franz
+      juplo.transfer.local-state-store-path: /var/lib/app/franz.bin
+      juplo.transfer.state-store-interval: 20
+      juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
+      juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
+      juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
+      juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
+      juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
+    volumes:
+      - data:/var/lib/app
+    network_mode: host
+    depends_on:
+      - zookeeper
+      - kafka
+
+  beate:
+    image: juplo/payment-service-demo--transfer:2.2-SNAPSHOT
     environment:
-      juplo.transfer.bootstrap-servers: kafka:9093
+      server.port: 8094
+      juplo.transfer.group-instance-id: beate
+      juplo.transfer.local-state-store-path: /var/lib/app/beate.bin
+      juplo.transfer.state-store-interval: 20
+      juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
+      juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
+      juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
+      juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
+      juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
+    volumes:
+      - data:/var/lib/app
+    network_mode: host
     depends_on:
       - zookeeper
       - kafka
+
+  klaus:
+    image: juplo/payment-service-demo--transfer:2.2-SNAPSHOT
+    environment:
+      server.port: 8095
+      juplo.transfer.group-instance-id: klaus
+      juplo.transfer.local-state-store-path: /var/lib/app/klaus.bin
+      juplo.transfer.state-store-interval: 20
+      juplo.transfer.instance-id-uri-mapping.peter: http://localhost:8091
+      juplo.transfer.instance-id-uri-mapping.ute:   http://localhost:8092
+      juplo.transfer.instance-id-uri-mapping.franz: http://localhost:8093
+      juplo.transfer.instance-id-uri-mapping.beate: http://localhost:8094
+      juplo.transfer.instance-id-uri-mapping.klaus: http://localhost:8095
+    volumes:
+      - data:/var/lib/app
+    network_mode: host
+    depends_on:
+      - zookeeper
+      - kafka
+
+volumes:
+  data: