[영상] 가장 쉽게 배우는 도커
제조 AI 어시스턴트 MVP 완성
[영상] 가장 쉽게 배우는 도커
통합 프로젝트 > 제조 AI 어시스턴트 MVP 완성
Docker Compose를 사용해 LLM 서버·벡터DB·FastAPI·Streamlit을 단일 스택으로 구성하는 docker-compose.yml을 작성할 수 있다 컨테이너 간 네트워크 통신·볼륨 마운트·환경변수 관리 방법을 설명할 수 있다 Week 8 주간 프로젝트 '제조 AI 어시스턴트 MVP' 요구사항을 분해하고 구현 우선순위를 정할 수 있다 MVP 이후 프로덕션 고도화를 위한 다음 단계(인증·모니터링·CI/CD)를 설명할 수 있다
영상 핵심 정리 — 가장 쉽게 배우는 도커
이 영상은 Week 8의 마지막으로, Docker와 Docker Compose를 활용해 제조 AI 어시스턴트의 전체 스택을 단일 파일로 관리하는 방법을 설명한다. LLM 서버·벡터DB·API·UI를 한 번에 실행하는 실전 구성을 다룬다.
1. 제조 AI 스택 Docker Compose
version: '3.9'
services:
ollama:
image: ollama/ollama
ports: ['11434:11434']
volumes:
- ollama_data:/root/.ollama
chromadb:
image: chromadb/chroma:latest
ports: ['8000:8000']
volumes:
- chroma_data:/chroma/chroma
api:
build: ./api
ports: ['8001:8001']
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- CHROMA_HOST=chromadb
- CHROMA_PORT=8000
depends_on:
chromadb:
condition: service_healthy
ollama:
condition: service_started
ui:
build: ./ui
ports: ['8501:8501']
environment:
- API_URL=http://api:8001
depends_on:
- api
volumes:
ollama_data:
chroma_data:
2. 핵심 Docker 명령어
docker compose up -d
docker compose logs -f api
docker compose up -d --build api
docker compose down
docker compose down -v
3. MVP → 프로덕션 로드맵
[MVP] Docker Compose 로컬 실행
↓
[v1.0] GCP Cloud Run 배포 + GitHub Actions CI/CD
↓
[v1.1] 사용자 인증 (OAuth 2.0) + 감사 로그
↓
[v2.0] Kubernetes + Prometheus/Grafana 모니터링
↓
[v2.1] 모델 드리프트 감지 + 자동 재학습 파이프라인
함정 주의: depends_on만으로는 서비스가 '준비됐는지'를 보장하지 않는다. Compose는 컨테이너가 '시작됐는지'만 확인한다. ChromaDB가 컨테이너는 시작했지만 내부 초기화가 덜 됐을 때 API가 연결을 시도하면 에러가 난다. healthcheck를 각 서비스에 정의하고 condition: service_healthy로 의존성을 걸어야 안전하다.
다음 task와의 연결
다음 project '주간 프로젝트: 제조 AI 어시스턴트 MVP'에서는 Week 8 전체 내용을 통합해 실제 제조 AI 어시스턴트를 구현한다. Docker Compose로 전체 스택을 실행하고, 설비 알람 진단·매뉴얼 RAG 검색·실시간 센서 대시보드가 작동하는 MVP 완성이 목표다.
Docker Compose의 depends_on + healthcheck 설정이 올바르지 않을 때 발생하는 서비스 시작 순서 문제를 AI로 시뮬레이션하여 실제 배포 전에 취약점을 파악하세요.
스마트팩토리 AI 시스템의 Docker Compose 파일에서 depends_on과 healthcheck 설정이 잘못됐을 때 발생할 수 있는 장애 시나리오 3가지를 만들어줘. FastAPI가 ChromaDB보다 먼저 시작되는 경우, 벡터DB 볼륨 마운트 없이 컨테이너 재시작 시 데이터 유실, 컨테이너 간 서비스 이름 호스트명 오설정 등을 포함하고 올바른 설정 예시도 보여줘.
- • Docker Compose의 `depends_on` + `healthcheck`로 서비스 시작 순서를 보장한다 — DB가 준비되기 전에 API가 시작되면 연결 에러가 발생한다
- • 컨테이너 간 통신은 서비스 이름이 호스트명이 된다 — FastAPI에서 `http://chromadb:8000`으로 벡터DB에 접근하면 된다
- • 볼륨 마운트로 모델 파일·벡터DB 데이터를 컨테이너 외부에 저장해야 컨테이너 재시작 후에도 데이터가 유지된다
- • MVP 우선순위: 핵심 기능(진단 채팅) → 데이터 연결(RAG) → UI 완성(대시보드) → 배포 자동화 — 완벽한 설계보다 작동하는 MVP가 먼저다
