64 lines
1.4 KiB
Docker
64 lines
1.4 KiB
Docker
# Python 3.13 slim 이미지 사용
|
|
FROM python:3.13-slim
|
|
|
|
# 작업 디렉토리 설정
|
|
WORKDIR /app
|
|
|
|
# 시스템 패키지 업데이트 및 필요한 패키지 설치
|
|
RUN apt-get update && apt-get install -y \
|
|
gcc \
|
|
g++ \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Python 의존성 설치를 위한 uv 설치
|
|
RUN pip install uv
|
|
|
|
# pyproject.toml 복사 (uv.lock이 없을 수 있으므로)
|
|
COPY pyproject.toml ./
|
|
|
|
# uv.lock이 있으면 복사, 없으면 의존성만 설치
|
|
COPY uv.lock* ./
|
|
|
|
# 의존성 설치 (uv.lock이 있으면 frozen, 없으면 일반 설치)
|
|
RUN if [ -f uv.lock ]; then uv sync --frozen; else uv sync; fi
|
|
|
|
# 애플리케이션 코드 복사
|
|
COPY . .
|
|
|
|
# 환경변수 설정
|
|
ENV ENV=live
|
|
ENV PYTHONPATH=/app
|
|
|
|
# 포트 노출 (HTTP 서버용)
|
|
EXPOSE 3000
|
|
|
|
# 환경변수 정의 (런타임에 설정됨)
|
|
ENV KIS_APP_KEY=""
|
|
ENV KIS_APP_SECRET=""
|
|
ENV KIS_PAPER_APP_KEY=""
|
|
ENV KIS_PAPER_APP_SECRET=""
|
|
ENV KIS_HTS_ID=""
|
|
ENV KIS_ACCT_STOCK=""
|
|
ENV KIS_ACCT_FUTURE=""
|
|
ENV KIS_PAPER_STOCK=""
|
|
ENV KIS_PAPER_FUTURE=""
|
|
ENV KIS_PROD_TYPE=""
|
|
ENV KIS_URL_REST=""
|
|
ENV KIS_URL_REST_PAPER=""
|
|
ENV KIS_URL_WS=""
|
|
ENV KIS_URL_WS_PAPER=""
|
|
|
|
# 시작 스크립트 생성
|
|
RUN echo '#!/bin/bash\n\
|
|
set -e\n\
|
|
\n\
|
|
echo "Starting KIS Trade MCP Server..."\n\
|
|
echo "Environment: $ENV"\n\
|
|
\n\
|
|
# MCP 서버 시작 (HTTP 모드)\n\
|
|
exec uv run python server.py\n\
|
|
' > /app/start.sh && chmod +x /app/start.sh
|
|
|
|
# 시작 스크립트 실행
|
|
CMD ["/app/start.sh"]
|