Agent 2.0 exdev 서버 배포 스택
- server-dev start/stop/deploy 및 Gitea push 자동 배포 - local-dev 로컬 개발 환경 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
# 베이스 이미지 문제 해결 가이드
|
||||
|
||||
## 🔴 문제: "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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
문제가 해결되었나요? 다시 실행해보세요! 🚀
|
||||
|
||||
Reference in New Issue
Block a user