version: '3' services: kafka: image: confluentinc/cp-kafka:5.2.1 expose: - "9092" environment: - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_ADVERTISED_HOST_NAME=kafka - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 depends_on: - zookeeper zookeeper: image: confluentinc/cp-zookeeper:5.2.1 expose: - "2181" environment: - ZOOKEEPER_CLIENT_PORT=2181 dataflow-server: image: springcloud/spring-cloud-dataflow-server:${DATAFLOW_VERSION:?DATAFLOW_VERSION is not set!} container_name: dataflow-server ports: - "9393:9393" environment: - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.brokers=PLAINTEXT://kafka:9092 - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://kafka:9092 - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.binder.zkNodes=zookeeper:2181 - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.streams.binder.zkNodes=zookeeper:2181 - spring.cloud.skipper.client.serverUri=http://skipper-server:7577/api - spring.cloud.dataflow.applicationProperties.stream.management.metrics.export.prometheus.enabled=true - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.streamapp.security.enabled=false - spring.cloud.dataflow.applicationProperties.stream.management.endpoints.web.exposure.include=prometheus,info,health - spring.cloud.dataflow.grafana-info.url=http://localhost:3000 depends_on: - kafka app-import: image: springcloud/openjdk:latest depends_on: - dataflow-server command: > /bin/sh -c " while ! nc -z dataflow-server 9393; do sleep 1; done; wget -qO- 'http://dataflow-server:9393/apps' --post-data='uri=http://bit.ly/Einstein-SR2-stream-applications-kafka-maven&force=true'; echo 'Stream apps imported' wget -qO- 'https://dataflow-server:9393/apps' --post-data='uri=http://bit.ly/Dearborn-SR1-task-applications-maven&force=true'; echo 'Task apps imported'" skipper-server: image: springcloud/spring-cloud-skipper-server:${SKIPPER_VERSION:?SKIPPER_VERSION is not set!} container_name: skipper ports: - "7577:7577" - "9000-9010:9000-9010" - "20000-20105:20000-20105" environment: - SPRING_CLOUD_SKIPPER_SERVER_PLATFORM_LOCAL_ACCOUNTS_DEFAULT_PORTRANGE_LOW=20000 - SPRING_CLOUD_SKIPPER_SERVER_PLATFORM_LOCAL_ACCOUNTS_DEFAULT_PORTRANGE_HIGH=20100 # Grafana is configured with the Prometheus datasource. # Use `docker exec -it prometheus /bin/sh` to logging in the container prometheus: image: springcloud/spring-cloud-dataflow-prometheus-local:${DATAFLOW_VERSION:?DATAFLOW_VERSION is not set! Use 'export DATAFLOW_VERSION=local-server-image-tag'} container_name: 'prometheus' volumes: - 'scdf-targets:/etc/prometheus/' ports: - '9090:9090' depends_on: - service-discovery # The service-discovery container. Required for Prometheus setup only # Use `docker exec -it service-discovery /bin/sh` to logging the container service-discovery: image: springcloud/spring-cloud-dataflow-prometheus-service-discovery:0.0.4.RELEASE container_name: 'service-discovery' volumes: - 'scdf-targets:/tmp/scdf-targets/' expose: - '8181' ports: - '8181:8181' environment: - metrics.prometheus.target.cron=0/20 * * * * * - metrics.prometheus.target.filePath=/tmp/scdf-targets/targets.json - metrics.prometheus.target.discoveryUrl=http://dataflow-server:9393/runtime/apps - metrics.prometheus.target.overrideIp=skipper-server - server.port=8181 depends_on: - dataflow-server # Grafana SCDF Prometheus pre-built image: grafana: image: springcloud/spring-cloud-dataflow-grafana-prometheus:${DATAFLOW_VERSION:?DATAFLOW_VERSION is not set! Use 'export DATAFLOW_VERSION=local-server-image-tag'} container_name: 'grafana' ports: - '3000:3000' volumes: scdf-targets: