-
Notifications
You must be signed in to change notification settings - Fork 52
/
docker-compose.yaml
158 lines (147 loc) · 3.9 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
version: "3.0"
services:
oneterm-api:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-api:24.3
container_name: oneterm-api
volumes:
- file-data:/replay
- ./docs/api.yaml:/oneterm/config.yaml
depends_on:
- mysql
- redis
- oneterm-guacd
restart: always
networks:
new:
aliases:
- oneterm-api
oneterm-ssh:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-ssh:24.3.1
container_name: oneterm-ssh
ports:
- "12229:12228"
restart: always
tty: true
volumes:
- ./docs/ssh.yaml:/oneterm/config.yaml
- ./docs/scripts/entrypoint.sh:/oneterm/entrypoint.sh
- ssh-data:/root/.ssh
entrypoint: ./entrypoint.sh
depends_on:
- oneterm-api
networks:
new:
aliases:
- oneterm-ssh
oneterm-guacd:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-guacd:24.3
container_name: oneterm-guacd
user: root
restart: always
volumes:
- file-data:/replay
networks:
new:
aliases:
- oneterm-guacd
mysql:
image: registry.cn-hangzhou.aliyuncs.com/veops/mysql:latest
#image: mysql:8.0.30
container_name: oneterm-mysql
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_DATABASE: 'oneterm'
volumes:
- db-data:/var/lib/mysql
- ./docs/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
- ./docs/acl.sql:/docker-entrypoint-initdb.d/2-acl.sql
- ./docs/api.sql:/docker-entrypoint-initdb.d/3-api.sql
- ./docs/create-users.sql:/docker-entrypoint-initdb.d/1-create-users.sql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
networks:
new:
aliases:
- mysql
ports:
- '23306:3306'
redis:
image: registry.cn-hangzhou.aliyuncs.com/veops/redis:latest
container_name: oneterm-redis
#command: redis-server --requirepass tyrj5QVP9rHs
restart: always
environment:
TZ: Asia/Shanghai
networks:
new:
aliases:
- redis
oneterm-ui:
image: registry.cn-hangzhou.aliyuncs.com/veops/oneterm-ui:24.3
container_name: oneterm-ui
depends_on:
- oneterm-api
environment:
TZ: Asia/Shanghai
ONETERM_API_HOST: oneterm-api:8080
ACL_API_HOST: acl-api:5000
NGINX_PORT: 80
volumes:
- ./docs/nginx.oneterm.conf.example:/etc/nginx/conf.d/nginx.oneterm.conf.example
restart: always
command:
- /bin/sh
- -c
- |
envsubst '$$ONETERM_API_HOST $$ACL_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:
- "8000:80"
acl-api:
image: registry.cn-hangzhou.aliyuncs.com/veops/acl-api:1.1
container_name: oneterm-acl-api
environment:
#TZ: Asia/Shanghai
WAIT_HOSTS: mysql:3306, redis:6379
volumes:
- ./docs/settings.py:/data/app/acl/settings.py
- ./docs/.env:/data/apps/acl/.env
- ./docs/nginx.oneterm.conf.example:/etc/nginx/conf.d/nginx.oneterm.conf.example
restart: always
command:
- /bin/sh
- -c
- |
sleep 2
flask db-setup
flask init-acl
flask init-department
gunicorn --workers=3 autoapp:app -b 0.0.0.0:5000 -D --access-logfile logs/access.log --error-logfile logs/error.log
celery -A celery_worker.celery worker -E -Q acl_async --logfile=one_acl_async.log --autoscale=2,1
depends_on:
- mysql
- redis
networks:
new:
aliases:
- acl-api
volumes:
db-data:
driver: local
name: oneterm_db-data
file-data:
driver: local
name: oneterm_file-data
ssh-data:
driver: local
name: oneterm_ssh
networks:
new:
driver: bridge
name: oneterm_network
ipam:
config:
- subnet: 172.30.0.0/24