-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
158 lines (142 loc) · 3.28 KB
/
docker-compose.yml
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
version: '3'
services:
database:
image: postgres:16
ports:
- 5432:5432
restart: always
environment:
POSTGRES_USER: $DB_USERNAME
POSTGRES_PASSWORD: $DB_PASSWORD
POSTGRES_DB: $DB_NAME
volumes:
- postgres:/var/lib/postgresql/data
broker:
image: rabbitmq:3.11-management
ports:
- 5672:5672
- 15672:15672
restart: always
env_file:
- .env
environment:
RABBITMQ_DEFAULT_USER: $BROKER_USERNAME
RABBITMQ_DEFAULT_PASS: $BROKER_PASSWORD
redis:
image: redis:7
restart: always
command: redis-server --appendonly yes --requirepass $REDIS_PASSWORD
env_file:
- .env
volumes:
- redis:/data
victoriametrics:
image: victoriametrics/victoria-metrics:v1.99.0
restart: always
command: -retentionPeriod=1y
volumes:
- victoriametrics:/victoria-metrics-data
minio:
image: minio/minio
ports:
- 9000:9000
- 9001:9001
restart: always
env_file:
- .env
volumes:
- minio:/data
environment:
MINIO_ACCESS_KEY: $AWS_ACCESS_KEY_ID
MINIO_SECRET_KEY: $AWS_SECRET_ACCESS_KEY
command: server /data --console-address ":9001"
createbucket:
image: minio/mc
depends_on:
- minio
env_file:
- .env
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host add jmonminio $AWS_ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY;
/usr/bin/mc mb jmonminio/$AWS_BUCKET_NAME;
exit 0;
"
dbupgrade:
build: .
command: alembic upgrade head
env_file:
- .env
links:
- database
- redis
- victoriametrics
server:
image: ghcr.io/dockstudios/jmon-server:$JMON_RELEASE
build:
context: .
dockerfile: Dockerfile.server
command: python3 -u ./server.py
env_file:
- .env
restart: always
ports:
- 5000:5000
links:
- database
- broker
- redis
- victoriametrics
scheduler:
image: ghcr.io/dockstudios/jmon:$JMON_RELEASE
build: .
command: celery -A jmon.scheduler.app beat -S redbeat.RedBeatScheduler --loglevel=INFO
env_file:
- .env
restart: always
links:
- database
- broker
- minio
- redis
- victoriametrics
flower:
image: ghcr.io/dockstudios/jmon:$JMON_RELEASE
build: .
command: celery -A jmon.app flower --host=0.0.0.0 --broker_api=http://guest:guest@${BROKER_HOST}:15672/api/vhost
ports:
- 5555:5555
env_file:
- .env
restart: always
links:
- database
- broker
- minio
- redis
agent:
image: ghcr.io/dockstudios/jmon:$JMON_RELEASE
build: .
# Specify the test types as queues (requests, chrome, firefox)
# At least once agent must have the 'default' queue
# Concurrency should always be set to 1 - to add more concurrency,
# scale the agent containers
command: celery -A jmon.worker.app worker -Q default,requests,chrome,firefox --concurrency=1 --loglevel=INFO
init: true
env_file:
- .env
restart: always
links:
- database
- broker
- minio
- redis
- victoriametrics
# Mount noficiation plugins
volumes:
- ./jmon/plugins/notifications:/app/jmon/plugins/notifications:ro
volumes:
victoriametrics:
postgres:
redis:
minio: