-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
127 lines (122 loc) · 3.24 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
127 lines (122 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
services:
# Syncoor centralized server
syncoor-server:
build:
context: .
dockerfile: Dockerfile
container_name: syncoor-server
ports:
- "${SYNCOOR_SERVER_PORT:-10001}:8080"
command: [
"server",
"--listen", ":8080",
"--auth-token", "${SYNCOOR_AUTH_TOKEN:-}",
"--log-level", "${LOG_LEVEL:-info}",
"--mock"
]
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- SYNCOOR_AUTH_TOKEN=${SYNCOOR_AUTH_TOKEN:-}
networks:
- syncoor-net
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Syncoor run
syncoor-run:
build:
context: .
dockerfile: Dockerfile
container_name: syncoor-run
depends_on:
- syncoor-server
command: [
"sync",
"--network", "${NETWORK:-hoodi}",
"--el-client", "${EL_CLIENT:-geth}",
"--cl-client", "${CL_CLIENT:-teku}",
"--server", "http://host.docker.internal:${SYNCOOR_SERVER_PORT:-10001}",
"--server-auth", "${SYNCOOR_AUTH_TOKEN:-}",
"--log-level", "${LOG_LEVEL:-info}",
"--report-dir", "/app/reports",
"--label", "environment=local"
]
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- SYNCOOR_AUTH_TOKEN=${SYNCOOR_AUTH_TOKEN:-}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /tmp:/tmp
- ${HOME}/.docker:/root/.docker:ro
- ./reports:/app/reports
network_mode: host
restart: "no" # Don't restart sync tests automatically
# Syncoor report index generator
syncoor-report-index-generator:
build:
context: .
dockerfile: Dockerfile
container_name: syncoor-report-index-generator
command: [
"report-index",
"--watch",
"--report-dir", "/app/reports",
"--output", "/app/reports/index.json",
"--log-level", "${LOG_LEVEL:-info}"
]
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
volumes:
- ./reports:/app/reports
networks:
- syncoor-net
restart: unless-stopped
# Syncoor web UI
syncoor-web:
build:
context: .
dockerfile: Dockerfile.web
container_name: syncoor-web
ports:
- "${SYNCOOR_WEB_PORT:-10002}:80"
environment:
- SYNCOOR_WEB_PORT=${SYNCOOR_WEB_PORT:-10002}
entrypoint: ["/bin/sh", "-c"]
command:
- >-
echo '{
"directories": [
{
"name": "Local Dev",
"url": "http://localhost:'${SYNCOOR_WEB_PORT:-10002}'/reports/",
"enabled": true
},
{
"name": "Mock Reports",
"url": "http://localhost:'${SYNCOOR_WEB_PORT:-10002}'/reports/mock/",
"enabled": true
}
],
"syncoorApiEndpoints": [
{
"name": "Local Syncoor",
"url": "http://localhost:${SYNCOOR_SERVER_PORT:-10001}",
"enabled": true
}
]
}' > /usr/share/nginx/html/config.json &&
nginx -g 'daemon off;'
volumes:
- ./reports:/usr/share/nginx/html/reports:ro
networks:
- syncoor-net
restart: unless-stopped
depends_on:
- syncoor-server
networks:
syncoor-net:
driver: bridge