-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
143 lines (132 loc) · 3.51 KB
/
docker-compose.yml
File metadata and controls
143 lines (132 loc) · 3.51 KB
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
version: '3.8'
services:
# alarm-service:
# build:
# context: ./alarm-service
# dockerfile: Dockerfile
# ports:
# - "8081:8000"
# networks:
# - app-network
# environment:
# - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/connectist-db
# - SERVER_PORT=8000
# - SPRING_DATASOURCE_USERNAME=user
# - SPRING_DATASOURCE_PASSWORD=1234
nginx:
image: nginx:latest
ports:
- "8888:80" # HTTP 기본 포트 80을 외부로 노출
depends_on:
- board-service
- chat-service
- user-service
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf # Nginx 설정 파일을 마운트
networks:
- app-network
board-service:
build:
context: ./board-service
dockerfile: Dockerfile
ports:
- "8002:8000"
depends_on:
- mysql
networks:
- app-network
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/connectist-db
- SERVER_PORT=8000
- SPRING_DATASOURCE_USERNAME=user
- SPRING_DATASOURCE_PASSWORD=1234
chat-service:
build:
context: ./chat-service
dockerfile: Dockerfile
ports:
- "8003:8000"
depends_on:
- mongo
networks:
- app-network
environment:
- SERVER_PORT=8000
- SPRING_DATA_MONGODB_URI=mongodb://user:1234@mongo:27017/chat_db?authSource=admin # 사용자명과 비밀번호 포함 및 authSource 추가
- SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:9092 # Kafka 브로커 URL 설정
user-service:
build:
context: ./user-service
dockerfile: Dockerfile
ports:
- "8004:8000"
depends_on:
- mongo
networks:
- app-network
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/connectist-db
- SERVER_PORT=8000
- SPRING_DATASOURCE_USERNAME=user
- SPRING_DATASOURCE_PASSWORD=1234
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- JWT_SECRET_KEY=lfnaoiefqwenaksdnflkasfgioqwefiasdlkvandskjurnvqrnfalkdnfuinvienvs
- SPRING_MAIL_USERNAME=exampleconnectist
- SPRING_MAIL_PASSWORD=znnfylfkjyscjttb
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: password1234
MYSQL_DATABASE: connectist-db
MYSQL_USER: user
MYSQL_PASSWORD: 1234
ports:
- "33060:3306"
networks:
- app-network
mongo:
image: mongo:latest # MongoDB의 공식 이미지 사용
environment:
MONGO_INITDB_ROOT_USERNAME: user
MONGO_INITDB_ROOT_PASSWORD: 1234
ports:
- "27020:27017" # MongoDB는 27017 포트를 사용합니다.
volumes:
- mongo-data:/data/db
networks:
- app-network
redis:
image: redis:latest
ports:
- "6380:6379"
networks:
- app-network
kafka:
image: confluentinc/cp-kafka:latest
ports:
- "9093:9092"
depends_on:
- zookeeper
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_BROKER_ID: 1
KAFKA_DEFAULT_REPLICATION_FACTOR: 1 # 복제 계수 설정
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 # __consumer_offsets 토픽에 대한 복제 계수 설정
networks:
- app-network
zookeeper:
image: confluentinc/cp-zookeeper:latest
ports:
- "2182:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
mongo-data: # MongoDB 데이터 영구 저장