-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
132 lines (122 loc) · 2.84 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
version: '3.8'
services:
mysql:
image: mysql:latest
container_name: book-mile-mysql
env_file:
- .env
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "3307:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- app-network
redis:
image: redis:latest
container_name: book-mile-redis
ports:
- "6379:6379"
command: redis-server --appendonly yes # 데이터 영구 저장 옵션
volumes:
- redis_data:/data
networks:
- app-network
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- app-network
depends_on:
- application
grafana:
image: grafana/grafana
container_name: grafana
depends_on:
- prometheus
volumes:
- ./monitoring/grafana/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
ports:
- "3000:3000"
networks:
- app-network
application:
container_name: book-mile-app
build:
context: ./
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- mysql
- redis
env_file:
- .env
command: [ "java", "-jar", "/app.jar" ]
volumes:
- ./logs:/var/log/book-mile
networks:
- app-network
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.5.1
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
networks:
- app-network
kibana:
image: docker.elastic.co/kibana/kibana:8.5.1
container_name: kibana
depends_on:
- elasticsearch
ports:
- "5601:5601"
networks:
- app-network
logstash:
image: docker.elastic.co/logstash/logstash:8.5.1
container_name: logstash
volumes:
- ./monitoring/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
ports:
- "5044:5044"
depends_on:
- elasticsearch
networks:
- app-network
filebeat:
image: docker.elastic.co/beats/filebeat:8.5.1
container_name: filebeat
user: root
command: filebeat -e -strict.perms=false
volumes:
- ./monitoring/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- ./logs:/var/log/book-mile
depends_on:
- logstash
networks:
- app-network
volumes:
mysql_data:
redis_data:
elasticsearch_data:
networks:
app-network:
name: app-network
driver: bridge