-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
73 lines (68 loc) · 1.78 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
services:
# Prometheus service
prometheus:
build:
context: ./prometheus-grafana
dockerfile: Dockerfile.prometheus
image: ${DOCKER_USERNAME}/prometheus:${TAG}
ports:
- "9090:9090"
user: "65534"
restart: unless-stopped
networks:
- monitor-net
# Grafana service
grafana:
build:
context: ./prometheus-grafana
dockerfile: Dockerfile.grafana
args:
TAG: ${TAG}
image: ${DOCKER_USERNAME}/grafana:${TAG}
ports:
- "3000:3000"
volumes:
- ./prometheus-grafana/grafana.ini:/etc/grafana/grafana.ini
- grafana_data:/var/lib/grafana
secrets:
- grafana_admin_user
- grafana_admin_password
environment:
- GF_SECURITY_ADMIN_USER_FILE=/run/secrets/grafana_admin_user
- GF_SECURITY_ADMIN_PASSWORD_FILE=/run/secrets/grafana_admin_password # Expose Grafana on port 3000
restart: unless-stopped
networks:
- monitor-net
# Python Flask app service
python-app:
build:
context: .
dockerfile: ./my_app/Dockerfile.app
args:
TAG: ${TAG}
image: ${DOCKER_USERNAME}/ai-powered-alerting-system:${TAG}
ports:
- "5000:5000" # Expose Flask app on port 5000
- "8000:8000" # Expose Prometheus metrics on port 8000
volumes:
- ./my_app:/app # Mount app source code
restart: unless-stopped
depends_on:
- prometheus
- grafana
networks:
- monitor-net
# Define secrets for Grafana
secrets:
grafana_admin_user:
file: ${HOME}/secrets/grafana_admin_user.txt
grafana_admin_password:
file: ${HOME}/secrets/grafana_admin_password.txt
# Define a shared network
networks:
monitor-net:
driver: bridge
# Define a volume for Prometheus data storage
volumes:
prometheus_data:
grafana_data: