FROM python:3.10-slim
WORKDIR /app
# 시스템 의존성 설치
RUN apt-get update && apt-get install -y \
gcc \
&& rm -rf /var/lib/apt/lists/*
# 소스 코드 및 설정 파일 복사
COPY pyproject.toml README.md ./
COPY src/ ./src/
# Python 의존성 설치
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -e .
# 포트 노출 (기본값 8000, 환경 변수로 변경 가능)
EXPOSE 8000
# 환경 변수 기본값 설정
ENV HOST=0.0.0.0
ENV PORT=8000
ENV TRANSPORT=http
ENV LOG_LEVEL=INFO
ENV MCP_SERVER_NAME=opendart-mcp
# OPENDART_API_KEY는 필수이므로 런타임에 제공해야 함
# docker run 시 -e OPENDART_API_KEY=your-key 또는 .env 파일 사용
# 헬스체크 (선택사항)
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD python -c "import requests; requests.get('http://localhost:${PORT}/mcp', timeout=5)" || exit 1
# 서버 실행
# python -m으로 실행하면 __name__이 "__main__"이 아니므로 직접 main() 호출
CMD ["python", "-c", "from mcp_opendart.server import main; main()"]