DOCS/troubleshooting/250915_skill-rag-file_Docker_빌드_및_볼륨_마운트_문제.md
Claude-51124 623b991920 docs: skill-rag-file SSHFS allow_other 권한 문제 해결 및 관련 문서 업데이트
- 신규: 251014_skill-rag-file_sshfs_allow_other_해결.md
  - /etc/fuse.conf user_allow_other 활성화
  - SSHFS allow_other,default_permissions 옵션 추가
  - docker-compose.yml 볼륨 마운트 추가
  - 파일 영속성 검증 완료

- 수정: 250915_skill-rag-file_Docker_빌드_및_볼륨_마운트_문제.md
  - SSHFS 볼륨 충돌 임시/최종 해결 구분
  - docker-compose.yml 볼륨 마운트 반영

- 수정: 250915_skill-rag-file_초기_구축.md
  - SSHFS 명령 allow_other 옵션 추가
  - /etc/fuse.conf 설정 주의사항 추가

- 수정: 250731_claude_SSHFS권한문제해결.md
  - 2025-10-14 업데이트 섹션 추가
  - Docker SSHFS 충돌 allow_other로 해결 가능 명시

- 수정: 251014_slack_lists_file_attachment.md
  - 우선순위 0: 파일 영속성 문제 해결 추가
  - 교훈: FUSE 권한 모델 이해 부족 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 01:07:36 +09:00

2.1 KiB

skill-rag-file 구축 완료

작성일: 2025-09-15

작성자: Claude & happybell80

상태: 정상 작동 중

1. 해결된 주요 이슈

Docker 빌드 - uv.lock 문제

# 해결: uv.lock 없이 직접 설치
RUN pip install --no-cache-dir uv && \
    uv pip install --system --no-cache-dir .

SSHFS 볼륨 충돌

# 문제: Docker가 SSHFS 마운트 포인트에 mkdir 시도
Error: mkdir /mnt/51123data: file exists

# 임시 해결: documents 볼륨 제거, network_mode: host로 직접 접근
volumes:
  - ./logs:/app/logs  # documents 볼륨 제거
network_mode: host

# 최종 해결 (2025-10-14): SSHFS allow_other 옵션 사용
# 상세: 251014_skill-rag-file_sshfs_allow_other_해결.md 참고

SQLAlchemy metadata 예약어

# 변경: metadata → file_metadata
file_metadata = Column(JSONB, default={})

# Base.metadata.create_all() 제거 (테이블 이미 존재)

ChromaDB 임베디드 모드

# 변경 전: HttpClient (서버 모드, 포트 8000)
self.client = chromadb.HttpClient(host, port)

# 변경 후: PersistentClient (임베디드)
self.client = chromadb.PersistentClient(path="./chroma_db")

2. 핵심 설정

pyproject.toml

chromadb==1.0.21  # 버전 업그레이드
# readme = "README.md" 제거

docker-compose.yml (2025-10-14 업데이트)

services:
  skill-rag-file:
    container_name: skill-rag-file
    environment:
      - PORT=8508
      - DOCUMENT_BASE_PATH=/mnt/51123data/documents
    volumes:
      - ./logs:/app/logs
      - ./.env:/app/.env:ro
      - /mnt/51123data:/mnt/51123data:rw  # SSHFS allow_other 후 추가
    network_mode: host

3. 서비스 정보

  • 포트: 8508
  • API 문서: http://localhost:8508/docs
  • 파일 저장: /mnt/51123data/documents (SSHFS → 51123 HDD)
  • ChromaDB: ./chroma_db (임베디드)
  • PostgreSQL: 51123 서버 team_document 테이블

4. 최종 상태

  • 컨테이너 실행 중 (healthy)
  • 헬스체크 정상 (/healthz)
  • API 접근 가능
  • 파일 업로드/검색 준비 완료