FROM python:3.11-slim

LABEL description="Vector DB API Base Image - Cache Fixed"
LABEL version="cache-fixed-v1.0"
LABEL maintainer="admin@example.com"

# 환경 변수 설정
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    DEBIAN_FRONTEND=noninteractive \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    POETRY_NO_INTERACTION=1 \
    POETRY_VENV_IN_PROJECT=true \
    POETRY_VIRTUALENVS_CREATE=true \
    POETRY_VIRTUALENVS_PATH=/home/appuser/.venv \
    POETRY_CACHE_DIR=/home/appuser/.cache/pypoetry \
    HF_HUB_CACHE=/home/appuser/.cache/huggingface \
    TRANSFORMERS_CACHE=/home/appuser/.cache/transformers

# 시스템 패키지 설치
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential gcc g++ python3-dev \
    curl wget ca-certificates git \
    && rm -rf /var/lib/apt/lists/* && apt-get clean

# pip 업그레이드
RUN python3.11 -m pip install --no-cache-dir --upgrade pip setuptools wheel

# 사용자 생성
RUN groupadd -g 1000 appuser && \
    useradd -r -u 1000 -g 1000 -d /home/appuser -s /bin/bash appuser && \
    mkdir -p /home/appuser && chown -R 1000:1000 /home/appuser

# 작업 디렉토리 설정
WORKDIR /home/appuser
RUN chown appuser:appuser /home/appuser

# 🔧 핵심: 고정된 pyproject.toml 생성
COPY pyproject.toml poetry.lock ./
RUN chown appuser:appuser pyproject.toml poetry.lock

# appuser로 전환
USER appuser

# 🔧 Poetry를 appuser로 설치
ENV PATH="/home/appuser/.local/bin:$PATH"
RUN curl -sSL https://install.python-poetry.org | python3.11 -

# 🔧 Poetry 환경 설정 (프로젝트 내 가상환경)
RUN poetry config virtualenvs.in-project true && \
    poetry config virtualenvs.create true && \
    poetry config cache-dir /home/appuser/.cache/pypoetry

# 🔧 의존성 설치
RUN poetry install --only=main --no-root

EXPOSE 8000
CMD ["poetry", "--version"]

