sbx kit push — 키트 아티팩트를 OCI 레지스트리에 푸시

sbx kit push — 키트 아티팩트를 OCI 레지스트리에 푸시

sandbox kit의 한 하위 명령인 sbx kit push는 키트 아티팩트 디렉토리를 패키징해서 OCI 레지스트리로 푸시해요. 푸시할 때 서명이나 SLSA 공급망 증명(provenance)을 함께 붙일 수 있어서, 키트를 배포하고 무결성을 검증하는 워크플로의 시작점이 되는 명령이에요.

출처: 문서

본문

실험적(Experimental)

이 명령은 실험적이에요. 실험적 기능은 테스트와 피드백을 위한 것이며, 기능이나 설계가 릴리스 사이에 예고 없이 바뀌거나 향후 릴리스에서 완전히 제거될 수 있어요.

설명 (Description)

키트 아티팩트 디렉토리를 패키징해서 OCI 레지스트리로 푸시해요.

디렉토리에는 유효한 spec.yaml이 있어야 해요. 참조(reference)는 "registry/repo:tag" 형식이어야 해요 (예: "ghcr.io/myorg/my-plugin:1.0").

OCI 아티팩트 형식은 키트의 spec.yaml에서 선택돼요:

  • schemaVersion: "1" → 레거시 ZIP 기반 아티팩트
  • schemaVersion: "2" → 매니페스트 config blob에 spec을 담은 v2 tar+gzip 레이어와 표준 OCI 어노테이션 (그래서 distribution 도구가 레이어를 받아오지 않아도 키트 메타데이터를 읽을 수 있어요)

--sign을 쓰면 푸시된 매니페스트가 서명되고 Sigstore 번들이 키트에 OCI referrer로 붙어요. 서명은 --key로 키 기반 서명을 주지 않는 한 키리스(keyless, Fulcio + Rekor)로 진행돼요.

모든 푸시는 키트의 콘텐츠 다이제스트, 선언된 샌드박스 이미지, 그리고 디렉토리가 작업 트리(working tree)일 때 소스 git 커밋을 기록하는 SLSA 공급망 증명을 OCI referrer로 함께 붙여요. 증명은 --sign을 주지 않으면 서명되지 않으며, --sign을 주면 같은 신원이나 키로 DSSE in-toto 증명으로 서명돼요.

인증: sbx login의 Docker Hub 세션과 sbx registry 시크릿(sbx secret set --registry)이 우선하고, 그다음 Docker 자격증명 저장소(credential store)로 폴백해요.

옵션 (Options)

| 옵션 | 기본값 | 설명 | | --identity-token | | 키리스 서명용 OIDC 신원 토큰; 주변 CI 제공자, 그다음 인터랙티브 브라우저 로그인을 기본으로 사용 | | --identity-token-file | | OIDC 신원 토큰이 담긴 파일; 프로세스 인자에서 벗어나도록 유지 | | --key | | 키 기반 서명용 개인 키 (PEM); 키리스 서명을 하려면 생략 | | --sign | | 푸시된 키트에 서명하고 서명을 OCI referrer로 붙임 | | --tlog-upload | true | 키리스 서명을 Rekor transparency log에 업로드; 비공개 키트에는 false로 설정 |

전역 옵션 (Global options)

| 옵션 | 기본값 | 설명 | | --cloud | | 로컬 sandboxd 대신 Docker Cloud Sandboxes API로 디스패치 (점점 더 많은 동사 지원 — 현재 목록은 'sbx --cloud --help' 실행) | | -D, --debug | | 디버그 로깅 활성화 |

더 알아보기 (Learn more)

  • sbx kit sign, sbx kit verify, sbx kit validate 명령으로 키트 서명·검증 워크플로를 이어서 사용해요.
  • OCI 레지스트리 인증은 sbx loginsbx secret set --registry를 참고해요.