1
1
version : ' 3'
2
+
2
3
# Configuration environment variables:
3
4
# - DATAFLOW_VERSION and SKIPPER_VERSION specify what DataFlow and Skipper image versions to use.
4
5
# - STREAM_APPS_URI and TASK_APPS_URI are used to specify what Stream and Task applications to pre-register.
@@ -19,70 +20,125 @@ version: '3'
19
20
# The deployed stream applications that run in their own docker containers (e.g. docker:// registered apps),
20
21
# can be reached on the ports they expose.
21
22
services :
23
+ mariadb :
24
+ image : mariadb:10.4.22
25
+ container_name : dataflow-mariadb
26
+ environment :
27
+ MARIADB_DATABASE : dataflow
28
+ MARIADB_ROOT_PASSWORD : rootpw
29
+ expose :
30
+ - 3306
31
+
32
+ kafka-broker :
33
+ image : confluentinc/cp-kafka:5.5.2
34
+ container_name : dataflow-kafka
35
+ expose :
36
+ - " 9092"
37
+ environment :
38
+ - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka-broker:9092
39
+ - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
40
+ - KAFKA_ADVERTISED_HOST_NAME=kafka-broker
41
+ - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
42
+ - KAFKA_LOG4J_ROOT_LOGLEVEL=ERROR
43
+ - KAFKA_LOG4J_LOGGERS=org.apache.zookeeper=ERROR,org.apache.kafka=ERROR,kafka=ERROR,kafka.cluster=ERROR,kafka.controller=ERROR,kafka.coordinator=ERROR,kafka.log=ERROR,kafka.server=ERROR,kafka.zookeeper=ERROR,state.change.logger=ERROR
44
+ depends_on :
45
+ - zookeeper
46
+
47
+ zookeeper :
48
+ image : confluentinc/cp-zookeeper:5.5.2
49
+ container_name : dataflow-kafka-zookeeper
50
+ expose :
51
+ - " 2181"
52
+ environment :
53
+ - ZOOKEEPER_CLIENT_PORT=2181
54
+
22
55
dataflow-server :
23
56
user : root
24
- platform : linux/amd64
25
- image : springcloud/spring-cloud-dataflow-server:${DATAFLOW_VERSION:-2.11.0-SNAPSHOT}${BP_JVM_VERSION:-}
57
+ image :
springcloud/spring-cloud-dataflow-server:${DATAFLOW_VERSION:[email protected] @}${BP_JVM_VERSION:-}
26
58
container_name : dataflow-server
27
59
ports :
28
60
- " 9393:9393"
29
61
environment :
30
- - LANG=en_US.utf8
31
- - LC_ALL=en_US.utf8
32
- - JDK_JAVA_OPTIONS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
33
62
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_STREAM_SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS=PLAINTEXT://kafka-broker:9092
34
63
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_STREAM_SPRING_CLOUD_STREAM_KAFKA_STREAMS_BINDER_BROKERS=PLAINTEXT://kafka-broker:9092
35
64
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_STREAM_SPRING_CLOUD_STREAM_KAFKA_BINDER_ZKNODES=zookeeper:2181
36
65
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_STREAM_SPRING_CLOUD_STREAM_KAFKA_STREAMS_BINDER_ZKNODES=zookeeper:2181
66
+
37
67
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_STREAM_SPRING_KAFKA_STREAMS_PROPERTIES_METRICS_RECORDING_LEVEL=DEBUG
38
68
# Set CLOSECONTEXTENABLED=true to ensure that the CRT launcher is closed.
39
69
- SPRING_CLOUD_DATAFLOW_APPLICATIONPROPERTIES_TASK_SPRING_CLOUD_TASK_CLOSECONTEXTENABLED=true
70
+
40
71
- SPRING_CLOUD_SKIPPER_CLIENT_SERVER_URI=${SKIPPER_URI:-http://skipper-server:7577}/api
72
+
73
+ - SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/dataflow
74
+ - SPRING_DATASOURCE_USERNAME=root
75
+ - SPRING_DATASOURCE_PASSWORD=rootpw
76
+ - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver
41
77
# (Optionally) authenticate the default Docker Hub access for the App Metadata access.
42
78
- SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRY_CONFIGURATIONS_DEFAULT_USER=${METADATA_DEFAULT_DOCKERHUB_USER}
43
79
- SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRY_CONFIGURATIONS_DEFAULT_SECRET=${METADATA_DEFAULT_DOCKERHUB_PASSWORD}
80
+
44
81
- SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRYCONFIGURATIONS_DEFAULT_USER=${METADATA_DEFAULT_DOCKERHUB_USER}
45
82
- SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRYCONFIGURATIONS_DEFAULT_SECRET=${METADATA_DEFAULT_DOCKERHUB_PASSWORD}
46
83
depends_on :
84
+ - kafka-broker
47
85
- skipper-server
86
+ entrypoint : >
87
+ /bin/sh -c "
88
+ apt-get update && apt-get install --no-install-recommends -y wget &&
89
+ wget --no-check-certificate -P /tmp/ https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh &&
90
+ chmod a+x /tmp/wait-for-it.sh &&
91
+ /tmp/wait-for-it.sh mariadb:3306 -- /cnb/process/web"
48
92
restart : always
49
93
volumes :
50
94
- ${HOST_MOUNT_PATH:-.}:${DOCKER_MOUNT_PATH:-/home/cnb/scdf}
51
95
52
96
app-import-stream :
53
- platform : linux/amd64
54
97
image : springcloud/baseimage:1.0.1
55
98
container_name : dataflow-app-import-stream
56
99
depends_on :
57
100
- dataflow-server
101
+ command : >
102
+ /bin/sh -c "
103
+ ./wait-for-it.sh -t 360 dataflow-server:9393;
104
+ wget -qO- '${DATAFLOW_URI:-http://dataflow-server:9393}/apps' --no-check-certificate --post-data='uri=${STREAM_APPS_URI:-https://dataflow.spring.io/kafka-maven-latest&force=true}';
105
+ wget -qO- '${DATAFLOW_URI:-http://dataflow-server:9393}/apps/sink/ver-log/3.0.1' --no-check-certificate --post-data='uri=maven://org.springframework.cloud.stream.app:log-sink-kafka:3.0.1';
106
+ wget -qO- '${DATAFLOW_URI:-http://dataflow-server:9393}/apps/sink/ver-log/2.1.5.RELEASE' --no-check-certificate --post-data='uri=maven://org.springframework.cloud.stream.app:log-sink-kafka:2.1.5.RELEASE';
107
+ wget -qO- '${DATAFLOW_URI:-http://dataflow-server:9393}/apps/sink/dataflow-tasklauncher/${DATAFLOW_VERSION:[email protected] @}' --no-check-certificate --post-data='uri=maven://org.springframework.cloud:spring-cloud-dataflow-tasklauncher-sink-kafka:${DATAFLOW_VERSION:[email protected] @}';
108
+ echo 'Maven Stream apps imported'"
58
109
59
110
app-import-task :
60
- platform : linux/amd64
61
111
image : springcloud/baseimage:1.0.1
62
112
container_name : dataflow-app-import-task
63
113
depends_on :
64
114
- dataflow-server
65
115
command : >
66
116
/bin/sh -c "
67
-
68
117
./wait-for-it.sh -t 360 dataflow-server:9393;
69
118
wget -qO- '${DATAFLOW_URI:-http://dataflow-server:9393}/apps' --no-check-certificate --post-data='uri=${TASK_APPS_URI:-https://dataflow.spring.io/task-maven-latest&force=true}';
70
119
echo 'Maven Task apps imported'"
120
+
71
121
skipper-server :
72
122
user : root
73
- platform : linux/amd64
74
- image : springcloud/spring-cloud-skipper-server:${SKIPPER_VERSION:-2.11.0-SNAPSHOT}${BP_JVM_VERSION:-}
123
+ image :
springcloud/spring-cloud-skipper-server:${SKIPPER_VERSION:[email protected] @}${BP_JVM_VERSION:-}
75
124
container_name : skipper
76
125
ports :
77
126
- " 7577:7577"
78
127
- ${APPS_PORT_RANGE:-20000-20195:20000-20195}
79
128
environment :
80
- - LANG=en_US.utf8
81
- - LC_ALL=en_US.utf8
82
- - JDK_JAVA_OPTIONS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
83
129
- SPRING_CLOUD_SKIPPER_SERVER_PLATFORM_LOCAL_ACCOUNTS_DEFAULT_PORTRANGE_LOW=20000
84
130
- SPRING_CLOUD_SKIPPER_SERVER_PLATFORM_LOCAL_ACCOUNTS_DEFAULT_PORTRANGE_HIGH=20190
131
+ - SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/dataflow
132
+ - SPRING_DATASOURCE_USERNAME=root
133
+ - SPRING_DATASOURCE_PASSWORD=rootpw
134
+ - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver
85
135
- LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_CLOUD_SKIPPER_SERVER_DEPLOYER=ERROR
136
+ entrypoint : >
137
+ /bin/sh -c "
138
+ apt-get update && apt-get install --no-install-recommends -y wget &&
139
+ wget --no-check-certificate -P /tmp/ https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh &&
140
+ chmod a+x /tmp/wait-for-it.sh &&
141
+ /tmp/wait-for-it.sh mariadb:3306 -- /cnb/process/web"
86
142
restart : always
87
143
volumes :
88
144
- ${HOST_MOUNT_PATH:-.}:${DOCKER_MOUNT_PATH:-/home/cnb/scdf}
0 commit comments