-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
154 lines (139 loc) · 3.52 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
version: "3.9"
# requires docker-compose v1.28.0+
# --- core only---
# docker-compose up
# --- core + monitor ---
# docker-compose --profile monitor up
# docker-compose down --remove-orphans
services:
postgres:
image: tms-postgres-img
container_name: tms-postgres
restart: unless-stopped
build:
context: .
dockerfile: db.Dockerfile
networks:
- tms-bridge
ports:
- "5532:5432"
volumes:
- tms-pgdata:/var/lib/postgresql/data
env_file:
- .env
environment:
- POSTGRES_DB=tms-db-dev
- POSTGRES_USER=elanza48
- POSTGRES_PASSWORD=elanza48
- PGDATA=/var/lib/postgresql/data/pgdata
pgadmin:
image: dpage/pgadmin4:6.8
container_name: tms-pgadmin4
restart: unless-stopped
networks:
- tms-bridge
ports:
- "5050:80"
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: elanza48
app:
image: adoptopenjdk/openjdk11-openj9:alpine-jre
container_name: tms-app
restart: unless-stopped
working_dir: /opt/app
networks:
- tms-bridge
ports:
- "8090:8090"
- "8091:8091"
volumes:
- ./build/libs:/opt/app
env_file:
- .env
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/tms-dev
- SPRING_DATASOURCE_USERNAME=elanza48
- SPRING_DATASOURCE_PASSWORD=elanza48
depends_on:
- postgres
command: ["java", "-jar", "/opt/app/tms-$APP_VERSION.jar"]
nginx:
image: nginx:1.21.6-alpine
container_name: tms-nginx
restart: unless-stopped
networks:
- tms-bridge
ports:
- "8080:8080"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
depends_on:
- app
nginx-pxp:
image: nginx/nginx-prometheus-exporter:0.10.0
container_name: tms-nginx-pxp
profiles: ["monitor"]
restart: unless-stopped
networks:
- tms-bridge
ports:
- "9113:9113"
command:
- '-nginx.scrape-uri=http://nginx:8080/stub_status'
depends_on:
- nginx
prometheus:
image: prom/prometheus:v2.34.0
container_name: tms-prometheus
profiles: ["monitor"]
restart: unless-stopped
networks:
- tms-bridge
ports:
- "9090:9090"
volumes:
- ./metrics/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
depends_on:
- nginx
pg-exporter:
image: prometheuscommunity/postgres-exporter:v0.10.1
container_name: tms-pg-exporter
profiles: ["monitor"]
restart: unless-stopped
networks:
- tms-bridge
ports:
- "9187:9187"
environment:
- DATA_SOURCE_NAME=postgresql://elanza48:elanza48@postgres:5432/postgres?sslmode=disable
depends_on:
- prometheus
grafana:
image: grafana/grafana:8.4.6
container_name: tms-grafana
profiles: ["monitor"]
restart: unless-stopped
networks:
- tms-bridge
ports:
- "3000:3000"
volumes:
- tms-grafana:/var/lib/grafana
- ./metrics/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources/
- ./metrics/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards/
environment:
- GF_INSTALL_PLUGINS=yesoreyeram-boomtable-panel,agenty-flowcharting-panel
- GF_SECURITY_ADMIN_USER=elanza48
- GF_SECURITY_ADMIN_PASSWORD=elanza48
- GF_USERS_ALLOW_SIGN_UP=false
- GF_USERS_DEFAULT_THEME=light
- GF_LOG_CONSOLE_LEVEL=info
depends_on:
- prometheus
networks:
tms-bridge:
driver: bridge
volumes:
tms-pgdata:
tms-grafana: