🐛 Fix: 백엔드 500 오류 해결 및 배포용 도커 설정 완성

- Dockerfile: Poetry 대신 직접 pip 설치로 의존성 문제 해결
- highlights.py: UUID 임포트 추가, 들여쓰기 오류 수정, 1:N 관계 지원
- notes.py: Pydantic v2 호환성 수정, 다중 메모 지원
- models: highlight-note 관계를 1:1에서 1:N으로 변경
- docker-compose.yml: 배포용 환경변수 설정

 로그인 API 정상 작동 확인
 나스/맥미니 배포 준비 완료
This commit is contained in:
Hyungi Ahn
2025-08-22 09:58:23 +09:00
parent 54798c5919
commit edfabdac23
6 changed files with 252 additions and 110 deletions

View File

@@ -11,19 +11,26 @@ RUN apt-get update && apt-get install -y \
curl \
&& rm -rf /var/lib/apt/lists/*
# Poetry 설치
RUN pip install poetry
# Poetry 설정
ENV POETRY_NO_INTERACTION=1 \
POETRY_VENV_IN_PROJECT=1 \
POETRY_CACHE_DIR=/tmp/poetry_cache
# 의존성 파일 복사
COPY pyproject.toml poetry.lock* ./
# 의존성 설치
RUN poetry install --only=main && rm -rf $POETRY_CACHE_DIR
# 의존성 직접 설치 (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/
@@ -31,8 +38,15 @@ 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
# 애플리케이션 실행
CMD ["poetry", "run", "uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
# 애플리케이션 실행 (직접 uvicorn 실행)
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]