-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathdocker-compose.yaml
170 lines (160 loc) · 4.3 KB
/
docker-compose.yaml
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
services:
ops-db:
image: registry.cn-hangzhou.aliyuncs.com/veops/mysql:latest
container_name: ops-db
env_file:
- .env
environment:
TZ: Asia/Shanghai
volumes:
- db-data:/var/lib/mysql
- ./docs/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
- ./docs/create-users.sql:/docker-entrypoint-initdb.d/1-create-users.sql
- ./docs/ops.sql:/docker-entrypoint-initdb.d/ops.sql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-p$MYSQL_ROOT_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
networks:
new:
aliases:
- mysql
ports:
- '63306:3306'
ops-cache:
image: registry.cn-hangzhou.aliyuncs.com/veops/redis:latest
container_name: ops-cache
environment:
TZ: Asia/Shanghai
volumes:
- redis-data:/data
healthcheck:
interval: 10s
test: ["CMD", "redis-cli", "ping"]
networks:
new:
aliases:
- redis
cmdb-api:
image: registry.cn-hangzhou.aliyuncs.com/veops/cmdb-api:2.5.1
container_name: cmdb-api-ops
env_file:
- .env
volumes:
- ./docs/.env:/data/apps/cmdb/.env
- ./docs/app.py:/data/apps/cmdb/api/lib/perm/acl/app.py
environment:
TZ: Asia/Shanghai
WAIT_HOSTS: ops-db:3306, ops-cache:6379
depends_on:
ops-db:
condition: service_healthy
ops-cache:
condition: service_healthy
command:
- /bin/sh
- -c
- |
sed -i "s#USE_ACL = False#USE_ACL = True#g" settings.py
/wait
flask db-setup
flask common-check-new-columns
gunicorn --workers=4 autoapp:app -b 0.0.0.0:5000 -D
celery -A celery_worker.celery worker -E -Q one_cmdb_async --autoscale=4,1 --logfile=one_cmdb_async.log -D
celery -A celery_worker.celery worker -E -Q acl_async --logfile=one_acl_async.log --autoscale=2,1 -D
nohup flask cmdb-trigger > trigger.log 2>&1 &
flask cmdb-init-cache
flask cmdb-init-acl
flask init-import-user-from-acl
flask init-department
nohup flask cmdb-patch -v 2.4.17 &
flask cmdb-counter > counter.log 2>&1
networks:
new:
aliases:
- cmdb-api
healthcheck:
timeout: 3s
interval: 5s
retries: 10
test: "ps aux|grep -v grep|grep -v '1 root'|grep gunicorn || exit 1"
oneterm-api:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-api:25.2.1
container_name: oneterm-api-ops
env_file:
- .env
volumes:
- file-data:/replay
- ./docs/api.yaml:/oneterm/config.yaml
depends_on:
ops-db:
condition: service_healthy
ops-cache:
condition: service_healthy
oneterm-guacd:
condition: service_healthy
restart: always
networks:
new:
aliases:
- oneterm-api
ops-ui:
image: registry.cn-hangzhou.aliyuncs.com/veops/ops-ui:25.2.1
container_name: ops-ui
depends_on:
cmdb-api:
condition: service_healthy
environment:
TZ: Asia/Shanghai
ONETERM_API_HOST: oneterm-api:8080
CMDB_API_HOST: cmdb-api:5000
NGINX_PORT: 80
volumes:
- ./docs/nginx.cmdb.conf.example:/etc/nginx/conf.d/nginx.oneterm.conf.example
restart: always
command:
- /bin/sh
- -c
- |
envsubst '$$ONETERM_API_HOST $$CMDB_API_HOST $$NGINX_PORT' < /etc/nginx/conf.d/nginx.oneterm.conf.example > /etc/nginx/conf.d/oneterm.conf
nginx -g 'daemon off;'
networks:
- new
ports:
- "8080:80"
oneterm-guacd:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-guacd:latest
container_name: oneterm-guacd
restart: always
user: root
volumes:
- file-data:/replay
networks:
new:
aliases:
- oneterm-guacd
healthcheck:
test: "nc -z 127.0.0.1 4822 || exit 1"
interval: 5s
volumes:
db-data:
driver: local
name: cmdb_db-ops
file-data:
driver: local
name: oneterm_file-ops
ssh-data:
driver: local
name: oneterm_ssh-ops
redis-data:
driver: local
name: redis-data-ops
networks:
new:
driver: bridge
name: ops_network
ipam:
config:
- subnet: 172.36.0.0/24