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"]