YAML · 1916 bytes Raw Blame History
1 version: '3.8'
2
3 services:
4 # ZephyrFS Coordinator
5 coordinator:
6 build:
7 context: ../zephyrfs-coordinator
8 dockerfile: Dockerfile
9 ports:
10 - "8080:8080" # gRPC port
11 - "8090:8090" # HTTP API port
12 - "8091:8091" # Metrics port
13 environment:
14 - LOG_LEVEL=debug
15 volumes:
16 - coordinator_data:/data
17 networks:
18 - zephyr_network
19 healthcheck:
20 test: ["CMD", "wget", "--spider", "-q", "http://localhost:8091/health"]
21 interval: 10s
22 timeout: 5s
23 retries: 3
24
25 # ZephyrFS Node 1
26 node1:
27 build:
28 context: .
29 dockerfile: Dockerfile.test
30 depends_on:
31 coordinator:
32 condition: service_healthy
33 environment:
34 - ZEPHYR_COORDINATOR_URL=http://coordinator:8080
35 - ZEPHYR_P2P_PORT=4001
36 - ZEPHYR_API_PORT=8081
37 - ZEPHYR_NODE_ID=node-1
38 - LOG_LEVEL=debug
39 volumes:
40 - node1_data:/data
41 networks:
42 - zephyr_network
43
44 # ZephyrFS Node 2
45 node2:
46 build:
47 context: .
48 dockerfile: Dockerfile.test
49 depends_on:
50 coordinator:
51 condition: service_healthy
52 environment:
53 - ZEPHYR_COORDINATOR_URL=http://coordinator:8080
54 - ZEPHYR_P2P_PORT=4002
55 - ZEPHYR_API_PORT=8082
56 - ZEPHYR_NODE_ID=node-2
57 - LOG_LEVEL=debug
58 volumes:
59 - node2_data:/data
60 networks:
61 - zephyr_network
62
63 # ZephyrFS Node 3
64 node3:
65 build:
66 context: .
67 dockerfile: Dockerfile.test
68 depends_on:
69 coordinator:
70 condition: service_healthy
71 environment:
72 - ZEPHYR_COORDINATOR_URL=http://coordinator:8080
73 - ZEPHYR_P2P_PORT=4003
74 - ZEPHYR_API_PORT=8083
75 - ZEPHYR_NODE_ID=node-3
76 - LOG_LEVEL=debug
77 volumes:
78 - node3_data:/data
79 networks:
80 - zephyr_network
81
82 volumes:
83 coordinator_data:
84 node1_data:
85 node2_data:
86 node3_data:
87
88 networks:
89 zephyr_network:
90 driver: bridge