-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
73 lines (69 loc) · 2.31 KB
/
docker-compose.yaml
File metadata and controls
73 lines (69 loc) · 2.31 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
services:
elasticsearch:
# image: docker.elastic.co/elasticsearch/elasticsearch:8.19.1
build: ./elasticsearch # ./elasticsearch 디렉토리에 있는 Dockerfile을 사용하여 이미지를 빌드
container_name: elasticsearch_final
environment:
- xpack.security.enabled=false
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # [추천] 메모리 제한 설정 (선택사항)
ports:
- "9200:9200"
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:8.19.1
container_name: kibana_final
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
mcp:
build: ./mcp
container_name: mcp_server_final
ports:
- "8001:8001"
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENWEATHER_API_KEY=${OPENWEATHER_API_KEY}
- LANGSMITH_API_KEY=${LANGSMITH_API_KEY}
volumes:
- ./mcp:/mcp
# mcp 서버가 정상적으로 실행 중인지 확인하는 healthcheck 추가
healthcheck:
test: ["CMD-SHELL", "wget --quiet --tries=1 --spider http://localhost:8001/health || exit 1"]
# docker compose ps 를 통해 Status를 확인할 수 있다.
# docker inspect --format="{{json .State.Health}}" mcp_server_final 를 활용해서 어떤 것들이 문제인지 알 수 있다.
# wget 같은 경우 pip 와 관련있는게 아니라서 Dockerfile에 RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/* 작성해줘야 한다.
interval: 20s
timeout: 5s
retries: 5
start_period: 30s
env_file:
.env
api:
build: ./app
container_name: fastapi_llm_agent_final
ports:
- "0.0.0.0:8090:8000"
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- OPENAI_API_KEY=${OPENAI_API_KEY}
- LANGSMITH_API_KEY=${LANGSMITH_API_KEY}
volumes:
- ./app:/app
# mcp 서비스가 'healthy' 상태가 된 후에 api 서비스를 시작하도록 설정
depends_on:
mcp:
condition: service_healthy
# redis:
# condition: service_healthy
env_file:
.env
# 더 만들기
volumes:
esdata:
# redis-data: