Docker Compose
Docker Compose
모델 서비스나 벡터 스토어를 Docker Compose로 띄워 놓고, Spring AI 애플리케이션이 그 컨테이너에 자동으로 연결되게 하고 싶다면? Spring AI가 제공하는 Spring Boot 자동 구성(auto-configuration)을 쓰면 됩니다. 컨테이너 이름만 일치하면 연결 정보를 알아서 구성해 줘요.
출처: 공식문서
시작하기
연결을 활성화하려면 프로젝트의 Maven pom.xml에 아래 의존성을 추가합니다.
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-spring-boot-docker-compose</artifactId>
</dependency>
Gradle build.gradle을 쓴다면 이렇게 하면 돼요.
dependencies {
implementation 'org.springframework.ai:spring-ai-spring-boot-docker-compose'
}
TIP: 빌드 파일에 Spring AI BOM을 추가하는 방법은 Dependency Management 섹션을 참고하세요.
Service Connections
spring-ai-spring-boot-docker-compose 모듈이 제공하는 서비스 연결 팩토리는 다음과 같습니다. 각 항목은 컨테이너 이름으로 매칭돼요.
| Connection Details | 매칭 조건 |
|---|---|
AwsOpenSearchConnectionDetails |
이름이 localstack/localstack인 컨테이너 |
ChromaConnectionDetails |
이름이 chromadb/chroma, ghcr.io/chroma-core/chroma인 컨테이너 |
MilvusServiceClientConnectionDetails |
이름이 milvusdb/milvus인 컨테이너 |
OllamaConnectionDetails |
이름이 ollama/ollama인 컨테이너 |
OpenSearchConnectionDetails |
이름이 opensearchproject/opensearch인 컨테이너 |
QdrantConnectionDetails |
이름이 qdrant/qdrant인 컨테이너 |
TypesenseConnectionDetails |
이름이 typesense/typesense인 컨테이너 |
WeaviateConnectionDetails |
이름이 semitechnologies/weaviate, cr.weaviate.io/semitechnologies/weaviate인 컨테이너 |
McpSseClientConnectionDetails |
이름이 docker/mcp-gateway인 컨테이너 |
이 밖에도 spring boot 모듈 spring-boot-docker-compose가 더 많은 서비스 연결을 제공합니다. 전체 목록은 Docker Compose Support 문서 페이지를 참고하세요.
더 알아보기
- Testcontainers — 테스트에서 모델·벡터 스토어 컨테이너를 띄우는 방법
- Getting Started — 의존성 관리와 BOM