release
This commit is contained in:
parent
67d4d69bc4
commit
42dd563205
@ -1,22 +1,35 @@
|
|||||||
# vector/app/main.py
|
# vector/app/main.py
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import logging
|
|
||||||
from contextlib import asynccontextmanager
|
|
||||||
from datetime import datetime
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
# 현재 디렉토리를 Python 경로에 추가
|
|
||||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# .env 파일 로딩 (다른 import보다 먼저)
|
# .env 파일 로딩 (다른 import보다 먼저)
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
from dotenv import load_dotenv
|
def is_kubernetes_env():
|
||||||
|
"""Kubernetes 환경 감지"""
|
||||||
|
return (
|
||||||
|
os.path.exists('/var/run/secrets/kubernetes.io/serviceaccount') or
|
||||||
|
os.getenv('KUBERNETES_SERVICE_HOST') or
|
||||||
|
os.getenv('ENVIRONMENT') == 'production'
|
||||||
|
)
|
||||||
|
|
||||||
# .env 파일에서 환경변수 로드
|
# 조건부 dotenv 로딩
|
||||||
load_dotenv()
|
if not is_kubernetes_env():
|
||||||
|
try:
|
||||||
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
load_dotenv()
|
||||||
|
print("✅ 로컬 개발환경: .env 파일 로딩")
|
||||||
|
except ImportError:
|
||||||
|
print("⚠️ python-dotenv 없음, 환경변수만 사용")
|
||||||
|
else:
|
||||||
|
print("ℹ️ Kubernetes/Production: ConfigMap/Secret 사용")
|
||||||
|
|
||||||
|
import logging
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Optional
|
||||||
import asyncio
|
import asyncio
|
||||||
import fastapi
|
import fastapi
|
||||||
from fastapi import FastAPI, HTTPException, BackgroundTasks, Depends
|
from fastapi import FastAPI, HTTPException, BackgroundTasks, Depends
|
||||||
|
|||||||
@ -1,17 +1,15 @@
|
|||||||
# deployment/container/Dockerfile
|
# deployment/container/Dockerfile
|
||||||
# Vector DB API Service Image - 디버깅 버전 (사용자 정보 및 Poetry 환경 수정)
|
# Vector DB API Service Image - 수정 버전
|
||||||
ARG BASE_IMAGE=vector-api-base:latest
|
ARG BASE_IMAGE=vector-api-base:optimized-dotenv-0.9.9-v1.0
|
||||||
FROM ${BASE_IMAGE}
|
FROM ${BASE_IMAGE}
|
||||||
|
|
||||||
# 메타데이터
|
# 메타데이터
|
||||||
LABEL maintainer="admin@example.com"
|
LABEL maintainer="admin@example.com"
|
||||||
LABEL version="1.0.6-debug-fixed"
|
LABEL version="1.0.7-fixed"
|
||||||
LABEL description="Vector DB API Service - Debug Version (사용자 정보 수정)"
|
LABEL description="Vector DB API Service - Fixed Poetry Environment"
|
||||||
|
|
||||||
# 🔧 사용자 정보 수정 (root 권한으로)
|
# 🔧 사용자 정보 수정 (root 권한으로)
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
# passwd 파일에 appuser 정보 추가
|
|
||||||
RUN echo "appuser:x:1000:1000:App User:/home/appuser:/bin/bash" >> /etc/passwd && \
|
RUN echo "appuser:x:1000:1000:App User:/home/appuser:/bin/bash" >> /etc/passwd && \
|
||||||
echo "appuser:x:1000:" >> /etc/group
|
echo "appuser:x:1000:" >> /etc/group
|
||||||
|
|
||||||
@ -21,6 +19,12 @@ USER appuser
|
|||||||
# 작업 디렉토리 설정
|
# 작업 디렉토리 설정
|
||||||
WORKDIR /home/appuser
|
WORKDIR /home/appuser
|
||||||
|
|
||||||
|
# 🔧 Poetry 프로젝트 파일 복사 (중요!)
|
||||||
|
COPY pyproject.toml poetry.lock ./
|
||||||
|
|
||||||
|
# 🔧 Base Image의 패키지를 현재 프로젝트에서 사용 가능하도록 설정
|
||||||
|
RUN poetry install --only=main --no-root
|
||||||
|
|
||||||
# 🚀 애플리케이션 소스 코드 복사
|
# 🚀 애플리케이션 소스 코드 복사
|
||||||
COPY app/ app/
|
COPY app/ app/
|
||||||
|
|
||||||
|
|||||||
@ -100,7 +100,7 @@ packages = [{include = "app"}]
|
|||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.11"
|
python = "^3.11"
|
||||||
dotenv = "^0.9.9"
|
python-dotenv = "^1.1.0"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["poetry-core"]
|
||||||
@ -130,8 +130,6 @@ RUN echo "🚀 최적화된 의존성 설치 시작..." && \
|
|||||||
\
|
\
|
||||||
echo "6️⃣ Claude AI 라이브러리 설치..." && \
|
echo "6️⃣ Claude AI 라이브러리 설치..." && \
|
||||||
poetry add anthropic && \
|
poetry add anthropic && \
|
||||||
echo "2️⃣ dotenv 0.9.9 설치..." && \
|
|
||||||
poetry add dotenv==0.9.9 && \
|
|
||||||
\
|
\
|
||||||
echo "✅ 최적화된 의존성 설치 완료!"
|
echo "✅ 최적화된 의존성 설치 완료!"
|
||||||
|
|
||||||
|
|||||||
214
vector/poetry.lock
generated
214
vector/poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -30,7 +30,6 @@ torch = {version = "^2.7.1+cpu", source = "pytorch-cpu"}
|
|||||||
torchvision = {version = "^0.22.1+cpu", source = "pytorch-cpu"}
|
torchvision = {version = "^0.22.1+cpu", source = "pytorch-cpu"}
|
||||||
torchaudio = {version = "^2.7.1+cpu", source = "pytorch-cpu"}
|
torchaudio = {version = "^2.7.1+cpu", source = "pytorch-cpu"}
|
||||||
starlette = ">=0.40.0,<0.46.0"
|
starlette = ">=0.40.0,<0.46.0"
|
||||||
dotenv = "^0.9.9"
|
|
||||||
|
|
||||||
[[tool.poetry.source]]
|
[[tool.poetry.source]]
|
||||||
name = "pytorch-cpu"
|
name = "pytorch-cpu"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user