▶️25

[영상] 가장 쉽게 배우는 도커

제조 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 완성이 목표다.

AI로 학습하기 — 꿀팁
Docker Compose 서비스 순서 장애 검증AI 학습 팁

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가 먼저다