FROM python:3.11-slim

# 작업 디렉토리 설정
WORKDIR /app

# 시스템 패키지 업데이트 및 필요한 패키지 설치
RUN apt-get update && apt-get install -y \
    gcc \
    g++ \
    libpq-dev \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 의존성 직접 설치 (Poetry 대신 pip 사용)
RUN pip install --no-cache-dir \
    fastapi==0.104.1 \
    uvicorn[standard]==0.24.0 \
    sqlalchemy==2.0.23 \
    asyncpg==0.29.0 \
    psycopg2-binary==2.9.7 \
    alembic==1.12.1 \
    python-jose[cryptography]==3.3.0 \
    passlib[bcrypt]==1.7.4 \
    python-multipart==0.0.6 \
    pillow==10.1.0 \
    redis==5.0.1 \
    pydantic[email]==2.5.0 \
    pydantic-settings==2.1.0 \
    python-dotenv==1.0.0 \
    httpx==0.25.2 \
    aiofiles==23.2.1 \
    jinja2==3.1.2 \
    greenlet==3.0.0

# 애플리케이션 코드 복사
COPY src/ ./src/

# 업로드 디렉토리 생성
RUN mkdir -p /app/uploads

# 환경변수 설정
ENV PYTHONPATH=/app
ENV DATABASE_URL=postgresql+asyncpg://docuser:docpass@database:5432/document_db
ENV SECRET_KEY=production-secret-key-change-this
ENV ADMIN_EMAIL=admin@test.com
ENV ADMIN_PASSWORD=admin123

# 포트 노출
EXPOSE 8000

# 애플리케이션 실행 (직접 uvicorn 실행)
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
