수동 배포 (레거시)
Dockerfile을 직접 작성하고 Harbor에 수동으로 배포하는 방식입니다.
v0.8.5부터 CLI 배포 방식을 사용하면 모든 과정이 자동화됩니다.
수동 배포 방식은 레거시 방법으로, 특별한 이유가 없다면 CLI 사용을 권장합니다.
수동 배포가 필요한 경우
다음과 같은 특수한 상황에서만 수동 배포를 고려하세요:
- 복잡한 시스템 의존성 (apt 패키지 등)
- 멀티 스테이지 빌드
- 커스텀 베이스 이미지
사전 요구사항
- 추론 함수 작성 완료
- Docker 설치 및 실행 중
- KeyNet Platform 계정
배포 워크플로우
1. Platform에서 Repository 키 발급
Platform 추론 설정 화면에서 커스텀 런타임용 repository 키를 발급받습니다.

발급 예시:
harbor.aiplatform.re.kr/kitech-runtime/abc123xyz:latest
주소 구조:
harbor.aiplatform.re.kr/kitech-runtime/abc123xyz:latest
└──────┬──────┘└───┬───┘ └─┬─┘
Project Repository Tag
발급받은 repository 주소는 런타임마다 고유합니다. 반드시 이 주소로 이미지를 빌드하고 push해야 합니다.
2. Dockerfile 작성
OpenWhisk Base Image
Platform은 Apache OpenWhisk 기반이므로 OpenWhisk base image를 사용해야 합니다.
사용 가능한 이미지:
| 이미지 | Python 버전 |
|---|---|
openwhisk/action-python-v3.9 | Python 3.9 |
openwhisk/action-python-v3.10 | Python 3.10 |
openwhisk/action-python-v3.11 | Python 3.11 |
openwhisk/action-python-v3.12 | Python 3.12 |
기본 Dockerfile:
FROM openwhisk/action-python-v3.12:latest
RUN pip install --no-cache-dir \
keynet-inference==0.8.5 \
Pillow==10.4.0 \
numpy==1.26.4
필수 의존성:
keynet-inference: 추론 API 제공 (필수)Pillow: 이미지 처리numpy: 배열 연산
재현 가능한 환경을 위해 패키지 버전을 명시하는 것을 권장합니다.
3. Harbor 로그인
Platform 계정으로 Harbor registry에 로그인합니다.
docker login harbor.aiplatform.re.kr
사용자 이름과 비밀번호를 입력합니다 (Platform 계정과 동일).
4. 이미지 빌드
발급받은 repository 주소로 이미지를 빌드합니다.
docker build -t harbor.aiplatform.re.kr/kitech-runtime/abc123xyz:latest .
5. Harbor에 Push
빌드된 이미지를 Harbor에 업로드합니다.
docker push harbor.aiplatform.re.kr/kitech-runtime/abc123xyz:latest
Platform은 Harbor를 주기적으로 모니터링하여 새로운 이미지를 자동으로 감지합니다. 최대 1분 정도 소요될 수 있습니다.
6. Platform에서 함수 생성
Platform 추론 설정에서 "함수 생성"을 클릭합니다.

커스텀 런타임 선택
Harbor에 push한 런타임을 선택합니다.

Push 후 최대 1분 대기 후 페이지를 새로고침하세요.
7. 함수 코드 업로드
작성한 Python 파일을 업로드합니다. 파일 구조는 추론 함수 작성을 참조하세요.
업로드 후 미리보기에서 파일 내용을 확인할 수 있습니다.
8. 추론 테스트



결과 이미지에는 후처리에서 추가한 예측 정보가 표시됩니다.
다음 단계
수동 배포를 완료했다면:
- Platform에서 다양한 이미지로 추론을 테스트하세요
- 로그 분석을 통해 함수를 최적화하세요
더 간편한 방법:
- 다음부터는 CLI 배포 방식을 사용하여 이 모든 과정을 자동화할 수 있습니다.