CLI 배포 (권장)
keynet-inference push 명령어로 추론 함수를 자동으로 빌드하고 배포합니다.
이 기능은 keynet-inference 0.8.5 버전부터 사용할 수 있습니다.
개요
CLI를 사용하면 복잡한 수동 과정 없이 한 번의 명령어로 배포가 완료됩니다.
자동화되는 작업:
- Docker 이미지 빌드
- Harbor registry에 push
- OpenWhisk 함수 등록
- MLflow model 연동
기존 방식 (수동):
# Dockerfile 작성 → 이미지 빌드 → Harbor push → Platform에서 함수 등록
CLI 방식:
keynet login https://gateway.aiplatform.re.kr
keynet-inference push inference.py
CLI는 내부적으로 Docker를 사용합니다. Docker가 설치되어 있고 실행 중이어야 합니다.
사전 요구사항
- 추론 함수 작성 완료
- keynet-inference 0.8.5 이상 설치
- Docker 설치 및 실행 중
- KeyNet Platform 계정
CLI 명령어
keynet login
Platform 및 컨테이너 레지스트리 인증을 수행합니다.
keynet login https://gateway.aiplatform.re.kr
출력 예시:
Email: YOUR@EMAIL
Password:
✓ Platform authentication successful
✓ Harbor login successful
✓ Configuration saved
╭────────────────── Login Complete ───────────────────╮
│ │
│ Server: https://gateway.aiplatform.re.kr │
│ User: YOUR@EMAIL │
│ Expires: 2025-12-10T10:53:23.619082Z │
│ Config: /Users/hbjs/.keynet/config.yaml │
│ │
╰─────────────────────────────────────────────────────╯
인증 정보는 ~/.keynet/config.yaml에 저장되며, 이후 push 명령어 실행 시 자동으로 사용됩니다.
keynet-inference push
추론 스크립트를 Docker 이미지로 빌드하고 OpenWhisk 함수로 배포합니다.
keynet-inference push inference.py
추론 스크립트는 @keynet_function 데코레이터로 진입점을 정의해야 합니다. 자세한 내용은 추론 함수 작성을 참조하세요.
CLI 옵션:
# 커스텀 Dockerfile 사용
keynet-inference push inference.py --dockerfile custom.Dockerfile
# 특정 base image 사용
keynet-inference push inference.py --base-image openwhisk/action-python-v3.11:latest
# requirements.txt 경로 지정 (기본값: ./requirements.txt)
keynet-inference push inference.py --requirements ./deps/requirements.txt
# 빌드 컨텍스트 지정 (기본값: 현재 디렉토리)
keynet-inference push inference.py --context ./my-project
# 캐시 없이 빌드
keynet-inference push inference.py --no-cache
옵션을 지정하지 않으면:
- 빌드 컨텍스트: 현재 디렉토리
- requirements.txt: 현재 디렉토리의
requirements.txt자동 사용 (있는 경우) - base_image:
@keynet_function데코레이터에서 지정한 값 사용
keynet logout
저장된 인증 정보를 삭제합니다.
keynet logout
자동 생성되는 Dockerfile
--dockerfile 옵션을 지정하지 않으면 다음과 같은 Dockerfile이 자동 생성됩니다:
FROM openwhisk/action-python-v3.12:latest
# requirements.txt 복사 및 설치 (있는 경우에만)
COPY requirements.txt* ./
RUN if [ -f requirements.txt ]; then \
pip install --no-cache-dir -r requirements.txt; \
fi
COPY requirements.txt* ./: 파일이 있으면 복사, 없으면 무시if [ -f requirements.txt ]: 파일 존재 여부를 확인하여 조건부 설치- requirements.txt가 없어도 빌드가 실패하지 않습니다
배포 워크플로우
1. 로그인
keynet login https://gateway.aiplatform.re.kr
2. 배포
keynet-inference push inference.py
CLI가 다음을 자동으로 처리합니다:
- 추론 스크립트 검증 (
@keynet_function확인) - Docker 이미지 빌드
- Harbor registry에 push
- OpenWhisk 함수 등록
빌드 컨텍스트(현재 디렉토리)에 requirements.txt 파일이 있으면 자동으로 Docker 이미지에 포함되어 의존성이 설치됩니다.
배포가 완료되면 Platform에서 함수를 바로 사용할 수 있습니다.
CLI 통합 (v0.8.5)
v0.7.4부터 login/logout 명령어는 keynet-core 패키지에서 공통 keynet CLI로 제공됩니다.
keynet login/keynet logout명령어 사용 (통합됨)- Training과 Inference 모두 동일한 인증 사용
- 인증 정보는
~/.keynet/config.yaml에 통합 관리 - 각 CLI(
keynet-train,keynet-inference)는 자동으로 올바른 API 엔드포인트로 연결
다음 단계
배포가 완료되었다면 Platform에서 모델을 바인딩하고 이미지를 업로드하여 추론을 테스트할 수 있습니다.
고급 사용:
- 복잡한 의존성이 필요하다면 수동 배포 방식을 참조하세요.