version: '3' services: mysql: image: mysql:5.7.25 container_name: dataflow-mysql environment: MYSQL_DATABASE: dataflow MYSQL_USER: root MYSQL_ROOT_PASSWORD: rootpw expose: - 3306 kafka-broker: image: confluentinc/cp-kafka:5.3.1 container_name: dataflow-kafka expose: - "9092" environment: - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka-broker:9092 - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_ADVERTISED_HOST_NAME=kafka-broker - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 depends_on: - zookeeper zookeeper: image: confluentinc/cp-zookeeper:5.3.1 container_name: dataflow-kafka-zookeeper 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-broker:9092 - spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://kafka-broker: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_DATASOURCE_URL=jdbc:mysql://mysql:3306/dataflow - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=rootpw - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver depends_on: - kafka-broker entrypoint: "./wait-for-it.sh mysql:3306 -- java -jar /maven/spring-cloud-dataflow-server.jar" app-import: image: springcloud/openjdk:2.0.0.RELEASE container_name: dataflow-app-import depends_on: - dataflow-server command: > /bin/sh -c " ./wait-for-it.sh -t 180 dataflow-server:9393; wget -qO- 'http://dataflow-server:9393/apps' --post-data='uri=${STREAM_APPS_URI:-https://dataflow.spring.io/kafka-maven-latest&force=true}'; echo 'Stream apps imported' wget -qO- 'http://dataflow-server:9393/apps' --post-data='uri=${TASK_APPS_URI:-https://dataflow.spring.io/task-maven-latest&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 - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/dataflow - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=rootpw - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver entrypoint: "./wait-for-it.sh mysql:3306 -- java -Djava.security.egd=file:/dev/./urandom -jar /spring-cloud-skipper-server.jar"