패키지 레지스트리

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

- GitLab Premium에서 GitLab Free로 이동 13.3 버전에서.

GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자를 위한 개인 또는 공개 레지스트리로 GitLab을 사용할 수 있습니다. 패키지를 발행하고 공유할 수 있으며 이를 하류 프로젝트의 의존성으로 사용할 수 있습니다.

패키지 워크플로우

GitLab 패키지 레지스트리를 사용하여 나만의 사용자 정의 패키지 워크플로우를 구축하는 방법을 알아봅니다.

패키지 보기

프로젝트 또는 그룹의 패키지를 볼 수 있습니다.

  1. 프로젝트 또는 그룹으로 이동합니다.
  2. 배포 > 패키지 레지스트리로 이동합니다.

이 페이지에서 패키지를 검색, 정렬, 필터링할 수 있습니다. 브라우저의 URL을 복사하여 검색 결과를 공유할 수 있습니다.

또한 패키지 관리자를 구성하거나 특정 패키지를 설치하는 데 도움이 되는 코드 조각을 찾을 수 있습니다.

그룹에서 패키지를 볼 때:

  • 그룹 및 해당 프로젝트에 발행된 모든 프로젝트가 표시됩니다.
  • 액세스할 수 있는 프로젝트만 표시됩니다.
  • 프로젝트가 비공개이거나 해당 프로젝트의 구성원이 아니면 표시되지 않습니다.

패키지를 만들고 업로드하는 방법에 대한 정보는 사용 중인 패키지 유형에 대한 GitLab 설명서를 참조하세요.

레지스트리로 인증

인증 방법은 사용 중인 패키지 관리자에 따라 다릅니다. 자세한 정보는 사용하려는 특정 패키지 형식에 대한 문서를 참조하세요.

대부분의 패키지 형식에 대해 다음 인증 유형이 유효합니다.

  • 개인 접근 토큰: 사용자 권한으로 인증합니다. 패키지 레지스트리의 개인 및 로컬 사용에 적합합니다.
  • 프로젝트 배포 토큰: 프로젝트의 모든 패키지에 액세스할 수 있습니다. 많은 사용자에게 프로젝트 액세스를 부여하거나 취소하는 데 유용합니다.
  • 그룹 배포 토큰: 그룹 및 해당 하위 그룹의 모든 패키지에 액세스할 수 있습니다. 다수의 사용자에 대한 패키지 액세스를 부여하거나 취소하는 데 유용합니다.
  • 작업 토큰: 작업을 실행하는 프로젝트에 대한 사용자가 실행하는 작업에 패키지에 액세스할 수 있습니다. 다른 외부 프로젝트에 대한 액세스를 구성할 수 있습니다.
  • 조직에서 이중 인증(2FA)을 사용하는 경우 api로 범위가 설정된 개인 접근 토큰을 사용해야 합니다.
  • CI/CD 파이프라인을 통해 패키지를 발행하는 경우 CI 작업 토큰을 사용해야 합니다.
note
프로젝트의 Settings > General > Visibility, project features, permissions에서 “패키지 레지스트리” 기능을 활성화하지 않은 경우 403 Forbidden 응답을 받습니다. 외부 인증이 활성화된 경우 배포 토큰을 사용하여 패키지 레지스트리에 액세스할 수 없습니다.

GitLab CI/CD 사용

GitLab CI/CD를 사용하여 패키지 레지스트리로 빌드하거나 가져올 수 있습니다.

패키지 빌드

Maven, NuGet, npm, Conan, Helm, PyPI 패키지 및 Composer 의존성의 경우 CI_JOB_TOKEN을 사용하여 GitLab에서 인증할 수 있습니다.

시작할 수 있는 CI/CD 템플릿은 이 리포지터리에 있습니다.

CI/CD를 사용하여 GitLab 패키지 레지스트리를 사용하는 자세한 정보는 다음을 참조하세요.

패키지를 빌드하는 경우 패키지 세부정보를 볼 때 확장된 활동 정보가 표시됩니다:

Package CI/CD activity

패키지를 게시한 파이프라인, 해당 게시물 및 해당 게시물을 트리거한 커밋 및 사용자를 볼 수 있습니다. 그러나 히스토리는 특정 패키지의 다섯 번의 업데이트로 제한됩니다.

패키지 가져오기

다른 레지스트리에 이미 구축된 패키지가 있는 경우 패키지 가져오기를 사용하여 GitLab 패키지 레지스트리로 가져올 수 있습니다.

지원되는 패키지 디렉터리은 다른 리포지터리에서 패키지 가져오기를 참조하세요.

저장 공간 사용량 줄이기

패키지 레지스트리의 저장 공간 사용량을 줄이는 방법에 대한 정보는 패키지 레지스트리 저장 공간 사용량 줄이기를 참조하세요.

패키지 레지스트리 비활성화

패키지 레지스트리는 자동으로 활성화됩니다.

GitLab의 Self-managed 인스턴스를 사용하는 경우 시스템 관리자는 GitLab 측면 표시줄의 패키지 및 레지스트리 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 관리 설명서를 참조하세요.

프로젝트의 패키지 레지스트리를 특별히 제거할 수도 있습니다.

  1. 프로젝트에서 Settings > General로 이동합니다.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 패키지 기능을 비활성화합니다.
  3. 변경 사항 저장을 선택합니다.

배포 > 패키지 레지스트리 항목이 사이드바에서 제거됩니다.

패키지 레지스트리 가시성 권한

프로젝트 수준 권한은 패키지 다운로드, 푸시 또는 삭제와 같은 작업을 결정합니다.

패키지 레지스트리의 가시성은 리포지터리와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트에서 리포지터리 가시성을 프로젝트 멤버만으로 설정하면 패키지 레지스트리가 공개됩니다. 패키지 레지스트리 비활성화는 모든 패키지 레지스트리 작업을 비활성화합니다.

프로젝트 가시성 작업 최소 역할 요구 사항
공개 패키지 레지스트리 보기 n/a, 인터넷의 모든 사람이 이 작업을 수행할 수 있습니다.
공개 패키지 발행 개발자
공개 패키지 가져오기 n/a, 인터넷의 모든 사람이 이 작업을 수행할 수 있습니다.
내부 패키지 레지스트리 보기 게스트
내부 패키지 발행 개발자
내부 패키지 가져오기 게스트 (1)
비공개 패키지 레지스트리 보기 기고자
비공개 패키지 발행 개발자
비공개 패키지 가져오기 기고자 (1)

누구나 패키지 레지스트리에서 가져올 수 있도록 허용

  • 소개 : GitLab 15.7에서 소개되었습니다.

어떤 프로젝트의 가시성에 관계없이, 누구나 패키지 레지스트리에서 가져올 수 있도록 허용하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. 누구나 패키지 레지스트리에서 가져오기 허용 토글을 켭니다.
  5. 변경 사항 저장을 선택합니다.

인터넷 상에서 누구나 해당 프로젝트의 패키지 레지스트리에 접근할 수 있습니다.

누구나 가져오기 허용 해제

전제 조건:

  • 관리자여야 합니다.

전역으로 누구나 패키지 레지스트리에서 가져오기 허용 토글을 숨기려면:

익명 다운로드는 비활성화되며, 심지어 누구나 패키지 레지스트리에서 가져오기 허용 토글을 켜도 해당 프로젝트에 대해 비활성화됩니다.

패키지 레지스트리에서 누구나 가져오기를 허용할 경우 여러 알려진 문제점이 있습니다:

  • 프로젝트 수준의 엔드포인트는 지원됩니다. 그룹 수준과 인스턴스 수준의 엔드포인트는 지원되지 않습니다. 그룹 수준의 엔드포인트 지원은 이슈 383537에서 제안되었습니다.
  • Composer와는 작동하지 않습니다. Composer는 그룹 엔드포인트만 가지고 있기 때문입니다.
  • Conan에는 작동하지만 conan search를 사용하는 것은 작동하지 않습니다.

기여 받기

이 표는 지원되지 않는 패키지 관리자 형식을 나열하고 있으며, 해당 형식에 대한 기여를 받고 있습니다. GitLab에 기여하는 것을 고려해보세요. 이 개발 문서가 진행 방법을 안내합니다.

형식 상태
Chef #36889
CocoaPods #36890
Conda #36891
CRAN #36892
Opkg #36894
P2 #36895
Puppet #36897
RPM #5932
SBT #36898
Swift #12233
Vagrant #36899