# 베이스 이미지 문제 해결 가이드 ## 🔴 문제: "rag-demo-base:latest" 이미지를 찾을 수 없음 ``` failed to solve: rag-demo-base:latest: failed to resolve source metadata ``` ## ✅ 해결 방법 ### 방법 1: 수동으로 베이스 이미지 빌드 (즉시 해결) ```bash cd /Users/parkjiwon/src/rag # 베이스 이미지 빌드 docker-compose --profile setup build _base # 확인 docker images | grep rag-demo-base # 이제 패키징 스크립트 실행 ./create-offline-package.sh ``` ### 방법 2: 스크립트 이미 수정됨 (자동) **최신 버전의 `create-offline-package.sh`는 베이스 이미지를 자동으로 빌드합니다!** 다시 실행해보세요: ```bash ./create-offline-package.sh ``` --- ## 📦 Docker 이미지 구조 ``` rag-demo-base:latest (베이스 이미지) ↓ FROM rag_preprocess:latest (전처리 서비스) rag_embed:latest (임베딩 서비스) rag_index:latest (인덱싱 서비스) ↓ FROM rag_api:latest (API 서비스) ``` **베이스 이미지가 없으면 다른 이미지를 빌드할 수 없습니다!** --- ## 🔍 베이스 이미지 확인 ```bash # 베이스 이미지 존재 여부 확인 docker images | grep rag-demo-base # 예상 출력: # rag-demo-base latest abc123def456 5 minutes ago 1.5GB ``` --- ## 🛠️ 수동 빌드 순서 (참고용) Docker Compose를 사용하지 않고 수동으로: ```bash # 1. 베이스 이미지 빌드 docker build -f docker/base.Dockerfile -t rag-demo-base:latest . # 2. 배치 서비스 이미지 빌드 docker build -f docker/batch.Dockerfile -t rag-batch:latest . # 3. API 서비스 이미지 빌드 docker build -f docker/service.Dockerfile -t rag-api:latest . ``` --- ## ✨ 업데이트된 스크립트 기능 ### create-offline-package.sh (v2) **자동으로 수행:** 1. ✅ 베이스 이미지 빌드 (`_base`) 2. ✅ 서비스 이미지 빌드 (preprocess, embed, index, api) 3. ✅ 3개 이미지를 tar로 저장 - `rag-demo-base.tar` - `rag-batch.tar` - `rag-api.tar` 4. ✅ 프로젝트 파일 복사 5. ✅ 배포 스크립트 생성 (deploy.sh도 베이스 이미지 로드 포함) 6. ✅ 전체 패키지 압축 --- ## 📊 패키지 크기 변경 ### 이전 ``` rag-api.tar 1.2GB rag-batch.tar 1.1GB ───────────────────────── Total: 2.3GB ``` ### 업데이트 후 ``` rag-demo-base.tar 1.5GB rag-api.tar 0.2GB (베이스 위에 추가 레이어만) rag-batch.tar 0.2GB (베이스 위에 추가 레이어만) ───────────────────────── Total: 1.9GB (더 작아짐!) ``` **베이스 이미지를 공유하므로 전체 크기가 줄어듭니다!** --- ## 🚀 지금 다시 실행하세요 ```bash cd /Users/parkjiwon/src/rag ./create-offline-package.sh ``` **이번엔 성공할 것입니다!** ✅ --- ## 📝 실행 예상 출력 ``` ================================================ RAG 시스템 오프라인 배포 패키지 생성 ================================================ 프로젝트 디렉토리: /Users/parkjiwon/src/rag [1/7] 패키지 디렉토리 생성: /Users/parkjiwon/rag-offline-package [2/7] Docker 이미지 빌드 중... - 베이스 이미지 빌드 중... ✅ 베이스 이미지 빌드 완료 - 서비스 이미지 빌드 중... ✅ 서비스 이미지 빌드 완료 [3/7] 이미지 태그 정리 중... [4/7] Docker 이미지를 tar 파일로 저장 중... - rag-demo-base.tar 저장 중... 완료: 1.5G - rag-api.tar 저장 중... 완료: 200M - rag-batch.tar 저장 중... 완료: 200M [5/7] 프로젝트 파일 복사 중... [6/7] 배포 스크립트 생성 중... [7/7] 전체 패키지 압축 중... ================================================ ✅ 패키지 생성 완료! ================================================ 패키지 위치: /Users/parkjiwon/rag-offline-package.tar.gz 패키지 크기: 2.1G ``` --- ## ❓ 여전히 문제가 있다면 ### 캐시 문제 ```bash # Docker 빌드 캐시 제거 docker builder prune -af # 다시 빌드 docker-compose --profile setup build --no-cache _base ./create-offline-package.sh ``` ### 디스크 공간 부족 ```bash # 디스크 공간 확인 df -h # Docker 정리 docker system prune -af ``` ### 권한 문제 ```bash # 스크립트 권한 확인 ls -la create-offline-package.sh # 권한 부여 chmod +x create-offline-package.sh ``` --- 문제가 해결되었나요? 다시 실행해보세요! 🚀