-
Notifications
You must be signed in to change notification settings - Fork 0
/
compose.yml
145 lines (143 loc) · 3.18 KB
/
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
services:
# NGINX
nginx:
build: .
volumes:
- ./gateway.conf:/etc/nginx/nginx.conf
ports:
- "80:80"
networks:
- mynetwork
container_name: api-gateway-laravel
depends_on:
- products_api
- notif_api
- user_api
labels:
logging: "promtail"
logging_jobname: "containerlogs"
# Product Service
products_api:
build:
dockerfile: Dockerfile
context: ./laravel-sanctum-api
ports:
- "8000:8000"
networks:
- mynetwork
container_name: products_api
depends_on:
- db_products
labels:
logging: "promtail"
logging_jobname: "containerlogs"
# Notif Service
notif_api:
build:
dockerfile: Dockerfile
context: ./laravel-mail-service
ports:
- "8001:8000"
networks:
- mynetwork
container_name: notif_api
depends_on:
- mailhog
labels:
logging: "promtail"
logging_jobname: "containerlogs"
# User Service
user_api:
build:
dockerfile: Dockerfile
context: ./user-service
ports:
- "8002:8000"
networks:
- mynetwork
container_name: user_api
depends_on:
- db_users
labels:
logging: "promtail"
logging_jobname: "containerlogs"
# DB Product Service
db_products:
image: postgres:latest
ports:
- "5432:5432"
networks:
- mynetwork
container_name: db_products
environment:
POSTGRES_PASSWORD: s3cr3tp4ss
volumes:
- product_service_volume:/var/lib/postgresql/data
# DB User Service
db_users:
image: postgres:latest
ports:
- "5431:5432"
networks:
- mynetwork
container_name: db_users
environment:
POSTGRES_PASSWORD: s3cr3tp4ss
volumes:
- user_service_volume:/var/lib/postgresql/data
# Mailhog
mailhog:
image: mailhog/mailhog
ports:
- "8025:8025"
- "1025:1025"
networks:
- mynetwork
grafana:
image: grafana/grafana:latest
ports:
- 3000:3000
volumes:
- ./config/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=true
networks:
- mynetwork
loki:
image: grafana/loki:latest
ports:
- 3100:3100
command: -config.file=/etc/loki/local-config.yaml
networks:
- mynetwork
promtail:
image: grafana/promtail:latest
container_name: promtail
volumes:
- ./config/promtail.yaml:/etc/promtail/docker-config.yaml
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
command: -config.file=/etc/promtail/docker-config.yaml
depends_on:
- loki
networks:
- mynetwork
prometheus:
image: prom/prometheus:latest
command:
- --storage.tsdb.retention.time=7d
- --config.file=/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
- mynetwork
networks:
mynetwork:
external: true
volumes:
product_service_volume:
user_service_volume: