1+ services :
2+ caddy :
3+ image : caddy:alpine
4+ restart : unless-stopped
5+ volumes :
6+ - ./Caddyfile:/etc/caddy/Caddyfile:ro
7+ depends_on :
8+ - fastapi
9+ ports :
10+ - " 80:80"
11+ networks :
12+ - event-manager-network
13+
14+
15+ fastapi :
16+ build : .
17+ restart : unless-stopped
18+ volumes :
19+ - log-volume:/tmp/event-manager/logs
20+ env_file :
21+ - sample.docker-compose.env
22+ depends_on :
23+ - postgres
24+ - redis
25+ networks :
26+ - event-manager-network
27+ ports :
28+ - " 8000:8000"
29+
30+
31+ postgres :
32+ image : postgres:latest
33+ restart : unless-stopped
34+ environment :
35+ - POSTGRES_USER=postgres
36+ - POSTGRES_PASSWORD=db_password
37+ - POSTGRES_DB=event-manager
38+ volumes :
39+ - pgdata:/var/lib/postgresql/data
40+ networks :
41+ - event-manager-network
42+ ports :
43+ - " 5432:5432"
44+ healthcheck :
45+ test : [ "CMD-SHELL", "pg_isready -U postgres -d db_password" ]
46+ interval : 30s
47+ timeout : 10s
48+ retries : 5
49+
50+ redis :
51+ image : redis:latest
52+ container_name : dev-redis
53+ restart : unless-stopped
54+ command : redis-server --appendonly yes --requirepass redis_password
55+ ports :
56+ - " 6379:6379"
57+ networks :
58+ - event-manager-network
59+ healthcheck :
60+ test : [ "CMD", "redis-cli", "auth", "redis_password", "ping" ]
61+ interval : 30s
62+ timeout : 10s
63+ retries : 5
64+
65+ loki :
66+ image : grafana/loki:3.5.3 # Recommended by Loki to lock a specific version
67+ restart : unless-stopped
68+ command : -config.file=/etc/loki/local-config.yaml
69+ user : " 0"
70+ volumes :
71+ - ./visualization/loki/loki-config.yaml:/etc/loki/local-config.yaml:ro
72+ - loki-data:/loki
73+ - loki-wal:/wal
74+ ports :
75+ - " 3100:3100"
76+ networks :
77+ - event-manager-network
78+
79+ promtail :
80+ image : grafana/promtail:3.5 # Recommended by Promtail to lock a specific version
81+ restart : unless-stopped
82+ volumes :
83+ - log-volume:/var/log/event-manager:ro
84+ - ./visualization/promtail/promtail-config.yaml:/etc/promtail/config.yaml:ro
85+ command : -config.file=/etc/promtail/config.yaml
86+ depends_on :
87+ - loki
88+ ports :
89+ - " 9081:9080"
90+ networks :
91+ - event-manager-network
92+
93+ grafana :
94+ image : grafana/grafana:latest
95+ restart : unless-stopped
96+ environment :
97+ - GF_SECURITY_ADMIN_PASSWORD=grafana_password
98+ - GF_USERS_ALLOW_SIGN_UP=false
99+ depends_on :
100+ - loki
101+ ports :
102+ - " 3000:3000"
103+ volumes :
104+ - grafana-storage:/var/lib/grafana
105+ - ./visualization/grafana/provisioning:/etc/grafana/provisioning:ro
106+ networks :
107+ - event-manager-network
108+
109+ prometheus :
110+ image : prom/prometheus:latest
111+ restart : unless-stopped
112+ volumes :
113+ - ./visualization/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
114+ ports :
115+ - " 9090:9090"
116+ networks :
117+ - event-manager-network
118+
119+ volumes :
120+ log-volume :
121+ pgdata :
122+ grafana-storage :
123+ loki-wal :
124+ loki-data :
125+
126+ networks :
127+ event-manager-network :
128+ driver : bridge
0 commit comments