cubefs

Форк
0
/
docker-compose.yml 
487 строк · 13.8 Кб
1
version: '2.1'
2

3
x-define-image: &image
4
    image: ${IMAGE}
5

6
x-define-env: &env
7
    environment:
8
        - TZ=Asia/Shanghai
9
        - http_proxy=
10
        - https_proxy=
11
        - HTTP_PROXY=
12
        - HTTPS_PROXY=
13

14
x-define-servernode: &servernode
15
    <<: [*image, *env]
16
    command: /bin/sh /cfs/script/start.sh
17
    restart: on-failure
18
    privileged: true
19
x-define-master: &master
20
    <<: *servernode
21
    ports:
22
        - "5901"
23
        - "5902"
24
        - "17010"
25
        - "17020"
26
        - 9500
27
x-define-metanode: &metanode
28
    <<: *servernode
29
    ports:
30
        - "17210"
31
        - "17220"
32
        - "17230"
33
        - "17240"
34
        - 9500
35
x-define-datanode: &datanode
36
    <<: *servernode
37
    ports:
38
        - "17310"
39
        - "17320"
40
        - "17330"
41
        - "17340"
42
        - 9500
43
x-define-objectnode: &objectnode
44
    <<: *servernode
45
    ports:
46
        - "80"
47
        - 9500
48
x-define-lcnode: &lcnode
49
    <<: *servernode
50
    ports:
51
        - "17410"
52
        - 9500
53

54
x-define-command: &command
55
    <<: [*image, *env]
56
    volumes:
57
        - ../:${CFSROOT}
58

59

60
networks:
61
    extnetwork:
62
      ipam:
63
         config:
64
         - subnet: 192.168.0.0/24
65
           gateway: 192.168.0.1
66

67
services:
68
    monitor:
69
        <<: *image
70
        depends_on:
71
            - consul
72
            - prometheus
73
            - grafana
74
        networks:
75
            extnetwork:
76

77
    servers:
78
        <<: *image
79
        depends_on:
80
            - master1
81
            - master2
82
            - master3
83
            - metanode1
84
            - metanode2
85
            - metanode3
86
            - metanode4
87
            - datanode1
88
            - datanode2
89
            - datanode3
90
            - datanode4
91
            - objectnode1
92
            - objectnode2
93
            - objectnode3
94
            - lcnode1
95
            - lcnode2
96
            - lcnode3
97
            - console1
98
            - nginx
99
        networks:
100
            extnetwork:
101

102
    master1:
103
        <<: *master
104
        volumes:
105
            - ${DiskPath:-./docker_data}/master1/data:/cfs/data
106
            - ./bin:/cfs/bin:ro
107
            - ${DiskPath:-./docker_data}/master1/log:/cfs/log
108
            - ./conf/master1.json:/cfs/conf/master.json
109
            - ./script/start_master.sh:/cfs/script/start.sh
110
        networks:
111
            extnetwork:
112
                ipv4_address: 192.168.0.11
113
    master2:
114
        <<: *master
115
        volumes:
116
            - ${DiskPath:-./docker_data}/master2/data:/cfs/data
117
            - ./bin:/cfs/bin:ro
118
            - ${DiskPath:-./docker_data}/master2/log:/cfs/log
119
            - ./conf/master2.json:/cfs/conf/master.json
120
            - ./script/start_master.sh:/cfs/script/start.sh
121
        networks:
122
            extnetwork:
123
                ipv4_address: 192.168.0.12
124
    master3:
125
        <<: *master
126
        volumes:
127
            - ${DiskPath:-./docker_data}/master3/data:/cfs/data
128
            - ./bin:/cfs/bin:ro
129
            - ${DiskPath:-./docker_data}/master3/log:/cfs/log
130
            - ./conf/master3.json:/cfs/conf/master.json
131
            - ./script/start_master.sh:/cfs/script/start.sh
132
        networks:
133
            extnetwork:
134
                ipv4_address: 192.168.0.13
135

136
    metanode1:
137
        <<: *metanode
138
        volumes:
139
            - ${DiskPath:-./docker_data}/metanode1/data:/cfs/data
140
            - ./bin:/cfs/bin:ro
141
            - ${DiskPath:-./docker_data}/metanode1/log:/cfs/log
142
            - ./conf/metanode.json:/cfs/conf/metanode.json
143
            - ./script/start_meta.sh:/cfs/script/start.sh
144
        networks:
145
            extnetwork:
146
                ipv4_address: 192.168.0.21
147
    metanode2:
148
        <<: *metanode
149
        volumes:
150
            - ${DiskPath:-./docker_data}/metanode2/data:/cfs/data
151
            - ./bin:/cfs/bin:ro
152
            - ${DiskPath:-./docker_data}/metanode2/log:/cfs/log
153
            - ./conf/metanode.json:/cfs/conf/metanode.json
154
            - ./script/start_meta.sh:/cfs/script/start.sh
155
        networks:
156
            extnetwork:
157
                ipv4_address: 192.168.0.22
158
    metanode3:
159
        <<: *metanode
160
        volumes:
161
            - ${DiskPath:-./docker_data}/metanode3/data:/cfs/data
162
            - ./bin:/cfs/bin:ro
163
            - ${DiskPath:-./docker_data}/metanode3/log:/cfs/log
164
            - ./conf/metanode.json:/cfs/conf/metanode.json
165
            - ./script/start_meta.sh:/cfs/script/start.sh
166
        networks:
167
            extnetwork:
168
                ipv4_address: 192.168.0.23
169
    metanode4:
170
        <<: *metanode
171
        volumes:
172
            - ${DiskPath:-./docker_data}/metanode4/data:/cfs/data
173
            - ./bin:/cfs/bin:ro
174
            - ${DiskPath:-./docker_data}/metanode4/log:/cfs/log
175
            - ./conf/metanode.json:/cfs/conf/metanode.json
176
            - ./script/start_meta.sh:/cfs/script/start.sh
177
        networks:
178
            extnetwork:
179
                ipv4_address: 192.168.0.24
180

181
    datanode1:
182
        <<: *datanode
183
        volumes:
184
            - ${DiskPath:-./docker_data}/datanode1/disk:/cfs/disk
185
            - ./bin:/cfs/bin:ro
186
            - ${DiskPath:-./docker_data}/datanode1/log:/cfs/log
187
            - ./conf/datanode.json:/cfs/conf/datanode.json
188
            - ./script/start_datanode.sh:/cfs/script/start.sh
189
        networks:
190
            extnetwork:
191
                ipv4_address: 192.168.0.31
192
    datanode2:
193
        <<: *datanode
194
        volumes:
195
            - ${DiskPath:-./docker_data}/datanode2/disk:/cfs/disk
196
            - ./bin:/cfs/bin:ro
197
            - ${DiskPath:-./docker_data}/datanode2/log:/cfs/log
198
            - ./conf/datanode.json:/cfs/conf/datanode.json
199
            - ./script/start_datanode.sh:/cfs/script/start.sh
200
        networks:
201
            extnetwork:
202
                ipv4_address: 192.168.0.32
203
    datanode3:
204
        <<: *datanode
205
        volumes:
206
            - ${DiskPath:-./docker_data}/datanode3/disk:/cfs/disk
207
            - ./bin:/cfs/bin:ro
208
            - ${DiskPath:-./docker_data}/datanode3/log:/cfs/log
209
            - ./conf/datanode.json:/cfs/conf/datanode.json
210
            - ./script/start_datanode.sh:/cfs/script/start.sh
211
        networks:
212
            extnetwork:
213
                ipv4_address: 192.168.0.33
214
    datanode4:
215
        <<: *datanode
216
        volumes:
217
            - ${DiskPath:-./docker_data}/datanode4/disk:/cfs/disk
218
            - ./bin:/cfs/bin:ro
219
            - ${DiskPath:-./docker_data}/datanode4/log:/cfs/log
220
            - ./conf/datanode.json:/cfs/conf/datanode.json
221
            - ./script/start_datanode.sh:/cfs/script/start.sh
222
        networks:
223
            extnetwork:
224
                ipv4_address: 192.168.0.34
225

226
    objectnode1:
227
        <<: *objectnode
228
        volumes:
229
            - ./bin:/cfs/bin:ro
230
            - ${DiskPath:-./docker_data}/objectnode1/log:/cfs/log
231
            - ./conf/objectnode.json:/cfs/conf/objectnode.json
232
            - ./script/start_objectnode.sh:/cfs/script/start.sh
233
        networks:
234
            extnetwork:
235
                ipv4_address: 192.168.0.41
236
    objectnode2:
237
        <<: *objectnode
238
        volumes:
239
            - ./bin:/cfs/bin:ro
240
            - ${DiskPath:-./docker_data}/objectnode2/log:/cfs/log
241
            - ./conf/objectnode.json:/cfs/conf/objectnode.json
242
            - ./script/start_objectnode.sh:/cfs/script/start.sh
243
        networks:
244
            extnetwork:
245
                ipv4_address: 192.168.0.42
246
    objectnode3:
247
        <<: *objectnode
248
        volumes:
249
            - ./bin:/cfs/bin:ro
250
            - ${DiskPath:-./docker_data}/objectnode3/log:/cfs/log
251
            - ./conf/objectnode.json:/cfs/conf/objectnode.json
252
            - ./script/start_objectnode.sh:/cfs/script/start.sh
253
        networks:
254
            extnetwork:
255
                ipv4_address: 192.168.0.43
256

257
    lcnode1:
258
        <<: *lcnode
259
        volumes:
260
            - ./bin:/cfs/bin:ro
261
            - ${DiskPath:-./docker_data}/lcnode1/log:/cfs/log
262
            - ./conf/lcnode.json:/cfs/conf/lcnode.json
263
            - ./script/start_lcnode.sh:/cfs/script/start.sh
264
        networks:
265
            extnetwork:
266
                ipv4_address: 192.168.0.61
267
    lcnode2:
268
        <<: *lcnode
269
        volumes:
270
            - ./bin:/cfs/bin:ro
271
            - ${DiskPath:-./docker_data}/lcnode2/log:/cfs/log
272
            - ./conf/lcnode.json:/cfs/conf/lcnode.json
273
            - ./script/start_lcnode.sh:/cfs/script/start.sh
274
        networks:
275
            extnetwork:
276
                ipv4_address: 192.168.0.62
277
    lcnode3:
278
        <<: *lcnode
279
        volumes:
280
            - ./bin:/cfs/bin:ro
281
            - ${DiskPath:-./docker_data}/lcnode3/log:/cfs/log
282
            - ./conf/lcnode.json:/cfs/conf/lcnode.json
283
            - ./script/start_lcnode.sh:/cfs/script/start.sh
284
        networks:
285
            extnetwork:
286
                ipv4_address: 192.168.0.63
287

288
    console1:
289
        <<: *servernode
290
        ports:
291
          - "80"
292
        volumes:
293
          - ./bin:/cfs/bin:ro
294
          - ${DiskPath:-./docker_data}/console/log:/cfs/log
295
          - ./conf/console.json:/cfs/conf/console.json
296
          - ./script/start_console.sh:/cfs/script/start.sh
297
        networks:
298
          extnetwork:
299
            ipv4_address: 192.168.0.50
300

301
    client:
302
        <<: [*image, *env]
303
        ports:
304
            - 9500
305
            - 17410:17410
306
        volumes:
307
            - ./bin:/cfs/bin:ro
308
            - ./conf/hosts:/etc/hosts:ro
309
            - ./conf/client.json:/cfs/conf/client.json
310
            - ${DiskPath:-./docker_data}/client/log:/cfs/log
311
            - ./script/run_test.sh:/cfs/script/start.sh
312
            - ./script/start_client.sh:/cfs/script/start_client.sh
313
            - ./ltp/runtest/fs:/opt/ltp/runtest/fs
314
            - ./s3tests:/opt/s3tests:ro
315
        privileged: true
316
        devices:
317
            - /dev/fuse:/dev/fuse:rwm
318
        command: /bin/bash /cfs/script/start.sh
319
        networks:
320
            extnetwork:
321

322

323
    client_ltp:
324
        <<: *env
325
        image: ${IMAGELTP}
326
        ports:
327
            - 9500
328
            - 17410:17410
329
        volumes:
330
            - ./bin:/cfs/bin:ro
331
            - ./conf/hosts:/etc/hosts:ro
332
            - ./conf/client.json:/cfs/conf/client.json
333
            - ${DiskPath:-./docker_data}/client/log:/cfs/log
334
            - ./script/run_test.sh:/cfs/script/start.sh
335
            - ./script/start_client.sh:/cfs/script/start_client.sh
336
            - ./ltp/runtest/fs:/opt/ltp/runtest/fs
337
            - ./s3tests:/opt/s3tests:ro
338
        privileged: true
339
        devices:
340
            - /dev/fuse:/dev/fuse:rwm
341
        command: /bin/bash /cfs/script/start.sh -ltp
342
        networks:
343
            extnetwork:
344

345
    consul:
346
        <<: *env
347
        image: consul:1.5
348
        ports:
349
            - 8500:8500
350
        volumes:
351
            - ./monitor:/monitor
352
        privileged: true
353
        networks:
354
            extnetwork:
355
                ipv4_address: 192.168.0.101
356

357
    prometheus:
358
        <<: *env
359
        image: prom/prometheus
360
        ports:
361
            - 9090:9090
362
        volumes:
363
            - ./monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
364
        privileged: true
365
        networks:
366
            extnetwork:
367
                ipv4_address: 192.168.0.102
368

369
    grafana:
370
        image: grafana/grafana:6.4.4
371
        environment:
372
            - GF_SECURITY_ADMIN_PASSWORD=123456
373
            - http_proxy=
374
            - https_proxy=
375
            - HTTP_PROXY=
376
            - HTTPS_PROXY=
377
        ports:
378
            - 3000:3000
379
        volumes:
380
            - ./monitor/grafana/grafana.ini:/etc/grafana/grafna.ini
381
            - ./monitor/grafana/provisioning:/etc/grafana/provisioning
382
            - ./monitor/grafana/init.sh:/grafana/init.sh
383
        privileged: true
384
        #command: /bin/bash
385
        networks:
386
            extnetwork:
387
                ipv4_address: 192.168.0.103
388

389
    nginx:
390
        <<: *env
391
        image: nginx:1.17.8
392
        ports:
393
            - "80:80"
394
        volumes:
395
            - ./conf/nginx.conf:/etc/nginx/nginx.conf:ro
396
        command: /bin/bash -c "nginx -g 'daemon off;'"
397
        restart: on-failure
398
        privileged: true
399
        networks:
400
            extnetwork:
401
                ipv4_address: 192.168.0.104
402

403
    prepare:
404
        <<: *command
405
        command:
406
            - bash
407
            - "-c"
408
            - >-
409
                set -e;
410
                tar -zxf /go/rocksdb_libs.tar.gz -C ${CFSROOT}/build
411

412
    format:
413
        <<: *command
414
        command: /bin/bash ${CFSROOT}/docker/script/run_format.sh
415

416
    build:
417
        <<: *image
418
        volumes:
419
            - ../:${CFSROOT}
420
            - ./script/build.sh:/cfs/script/build.sh
421
        command: /bin/bash /cfs/script/build.sh
422

423
    unit_test:
424
        <<: *command
425
        command:
426
            - bash
427
            - "-c"
428
            - >-
429
                set -e;
430
                mkdir -p ${CFSROOT}/docker/bin &&
431
                cd ${CFSROOT} && make testcover
432
        environment:
433
            - TZ=Asia/Shanghai
434
            - DOCKER_TESTING_LOG_OFF="on"
435
            - http_proxy=
436
            - https_proxy=
437
            - HTTP_PROXY=
438
            - HTTPS_PROXY=
439

440
    build_libsdkpre:
441
        <<: *command
442
        command:
443
            - bash
444
            - "-c"
445
            - >-
446
                set -e;
447
                cd ${CFSROOT} && make libsdkpre
448

449
    goreleaser:
450
        <<: *command
451
        command:
452
            - bash
453
            - "-c"
454
            - >-
455
                set -e;
456
                cd ${CFSROOT} &&
457
                /go/bin/goreleaser release --skip-publish --clean
458

459
    bs_gofumpt:
460
        <<: *command
461
        command:
462
            - bash
463
            - "-c"
464
            - >-
465
                set -e;
466
                cd ${CFSROOT}/blobstore && go vet -trimpath ./... &&
467
                /go/bin/gofumpt -l -w . && git diff --exit-code
468

469
    bs_golint:
470
        <<: *command
471
        command:
472
            - bash
473
            - "-c"
474
            - >-
475
                set -e;
476
                cd ${CFSROOT}/blobstore &&
477
                /go/bin/golangci-lint run --timeout 10m --issues-exit-code=1 -D errcheck -E bodyclose ./...
478

479
    gosec:
480
        <<: *command
481
        command:
482
            - bash
483
            - "-c"
484
            - >-
485
                set -e;
486
                cd ${CFSROOT} &&
487
                /go/bin/gosec -severity=high -exclude-dir=depends -exclude-dir=vendor -exclude-dir=autofs -exclude=G404 ./...
488

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.