-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose-dev.yml
163 lines (150 loc) · 4.9 KB
/
docker-compose-dev.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
155
156
157
158
159
160
161
162
163
version: "3.8"
services:
# dev_prometheus:
# build: ./prometheus
# image: dev_prometheus
# container_name: dev_prometheus_container
# ports:
# - "9090:9090"
# command:
# - "--config.file=/etc/prometheus/prometheus.yml"
# - "--storage.tsdb.path=/prometheus"
# - "--web.enable-lifecycle"
# dev_node-exporter:
# image: prom/node-exporter
# container_name: dev_node_exporter_container
# ports:
# - "9100:9100"
# dev_grafana:
# image: grafana/grafana
# container_name: dev_grafana_container
# volumes:
# - /hostpath/provisioning:/etc/provisioning
# - grafana_data:/var/lib/grafana
# ports:
# - 9000:3000
# dev_cadvisor:
# image: gcr.io/cadvisor/cadvisor:latest
# container_name: dev_cadvisor_container
# ports:
# - "8080:8080" # cAdvisor의 웹 인터페이스에 접근하기 위한 포트
# volumes:
# - /etc/machine-id:/etc/machine-id:ro
# - /:/rootfs:ro # 호스트 시스템의 루트 디렉토리를 읽기 전용으로 마운트
# - /var/run:/var/run:rw # Docker 소켓 위치
# - /sys:/sys:ro # 시스템 정보를 읽기 위한 마운트
# - /var/lib/docker/:/var/lib/docker:ro # Docker 이미지와 컨테이너 정보
# - /sys/fs/cgroup:/sys/fs/cgroup:ro # cgroup 정보를 위한 볼륨 마운트 추가
dev_backend:
build: ./backend
image: dev_backend
container_name: dev_backend_container
ports:
- "3001:3000"
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_REGION=${AWS_REGION}
- CLOVA_CLIENT_ID=${CLOVA_CLIENT_ID}
- CLOVA_CLIENT_SECRET=${CLOVA_CLIENT_SECRET}
# volumes:
# - log-data:/usr/src/app/logs
# log-data 볼륨과 /usr/src/app/logs라는 dev_backend 컨테이너 내부 경로를
# 마운팅(링크로 연결)하여 *.log 파일들을 공유
dev_frontend:
build: ./frontend
image: dev_frontend
container_name: dev_frontend_container
ports:
- "5001:5000"
environment:
- VITE_SHARE_KAKAO_LINK_KEY=${VITE_SHARE_KAKAO_LINK_KEY}
- VITE_SHARE_IMGUR_CLIENT_ID=${VITE_SHARE_IMGUR_CLIENT_ID}
dev_nginx:
build: ./nginx
image: dev_nginx
container_name: dev_nginx_container
# restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /hostpath/www:/var/www/html
- /hostpath/certbot/etc:/etc/letsencrypt:ro
depends_on:
- dev_backend
- dev_frontend
certbot:
image: certbot/certbot
container_name: dev_certbot_container
volumes:
- /hostpath/certbot/etc:/etc/letsencrypt
- /hostpath/certbot/var:/var/lib/letsencrypt
- /hostpath/www:/var/www/html
command: certonly --webroot --webroot-path=/var/www/html --email tjfgkssk9472@gmail.com --agree-tos --no-eff-email --force-renewal -d tairot.online -v
depends_on:
- dev_nginx
# ELK Stack 관련 Services
# .env에 ELASTIC_VERSION=7.17.11 추가
# elasticsearch:
# build:
# context: elasticsearch/
# args:
# ELASTIC_VERSION: ${ELASTIC_VERSION}
# container_name: dev_elasticsearch_container
# # env_file: .env
# volumes:
# - type: volume
# source: elasticsearch
# target: /usr/share/elasticsearch/data
# ports:
# - "9200:9200"
# # - "9300:9300"
# environment:
# ES_JAVA_OPTS: -Xmx256m -Xms256m
# discovery.type: single-node
# logstash:
# build:
# context: logstash/
# args:
# ELASTIC_VERSION: ${ELASTIC_VERSION}
# container_name: dev_logstash_container
# ports:
# - "5044:5044"
# # - "9600:9600"
# environment:
# LS_JAVA_OPTS: -Xmx256m -Xms256m
# LOGSTASH_SYSTEM_PASSWORD: ${LOGSTASH_SYSTEM_PASSWORD}
# ELASTIC_PASSWORD: ${ELASTIC_PASSWORD}
# depends_on:
# - elasticsearch
# kibana:
# build:
# context: kibana/
# args:
# ELASTIC_VERSION: ${ELASTIC_VERSION}
# container_name: dev_kibana_container
# ports:
# - "5601:5601"
# environment:
# KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD}
# depends_on:
# - elasticsearch
# filebeat:
# # platform: linux/amd64 # 관련 오류 발생 시 주석 풀고 시도해보기(아마 MAC에서만 발생하는 오류같음,,)
# build:
# context: filebeat/
# args:
# ELASTIC_VERSION: ${ELASTIC_VERSION}
# container_name: dev_filebeat_container
# volumes:
# - log-data:/var/log/server # nodejs 에서 OS에 남겨둔 로그를 filebeat에서 공유하여 logstash:5044로 보낼예정
# # log-data 볼륨과 /var/log/server라는 filebeat 컨테이너 내부 경로를
# # 마운팅(링크로 연결)하여 *.log 파일들을 공유
# command: filebeat -e -strict.perms=false
# depends_on:
# - logstash
# volumes:
# grafana_data:
# elasticsearch:
# log-data: