패키지 레지스트리
GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자를 위한 개인 또는 공개 레지스트리로 GitLab을 사용할 수 있습니다. 이를 통해 패키지를 게시하고 공유할 수 있으며 하위 프로젝트에서 의존성으로 사용할 수 있습니다.
패키지 워크플로우
GitLab 패키지 레지스트리를 사용하여 고유한 사용자 정의 패키지 워크플로우를 구축하는 방법을 알아보세요:
-
프로젝트를 패키지 레지스트리로 사용
- 모든 패키지를 하나의 프로젝트에 게시합니다.
- 하나의 monorepo 프로젝트에서 여러 다른 패키지를 게시합니다.
패키지 보기
프로젝트 또는 그룹의 패키지를 볼 수 있습니다.
- 프로젝트 또는 그룹으로 이동합니다.
- 배포 > 패키지 레지스트리로 이동합니다.
이 페이지에서 패키지를 검색, 정렬 및 필터링할 수 있습니다. 브라우저에서 URL을 복사하여 검색 결과를 공유할 수 있습니다.
또한 패키지 관리자를 구성하거나 특정 패키지를 설치하는 데 도움이 되는 코드 스니펫을 찾을 수 있습니다.
그룹에서 패키지를 볼 때:
- 그룹과 해당 프로젝트에 게시된 모든 프로젝트가 표시됩니다.
- 액세스할 수 있는 프로젝트만 표시됩니다.
- 프로젝트가 비공개이거나 해당 프로젝트의 구성원이 아니면 표시되지 않습니다.
패키지를 생성하고 업로드하는 방법에 대한 정보는 패키지 유형에 대한 GitLab 설명서를 참조하세요.
레지스트리와 인증
인증 방법은 사용 중인 패키지 관리자에 따라 다릅니다. 자세한 내용은 사용하려는 특정 패키지 형식에 대한 설명서를 참조하세요.
대부분의 패키지 유형의 경우 다음 자격 증명 유형이 유효합니다:
- 개인 액세스 토큰: 사용자 권한으로 인증합니다. 패키지 레지스트리의 개인 및 로컬 사용에 적합합니다.
- 프로젝트 배포 토큰: 프로젝트의 모든 패키지에 액세스할 수 있습니다. 많은 사용자에 대한 프로젝트 액세스를 부여하고 취소하는 데 유용합니다.
- 그룹 배포 토큰: 그룹 및 하위 그룹의 모든 패키지에 액세스할 수 있습니다. 다수의 사용자에 패키지 액세스를 부여하고 취소하는 데 유용합니다.
- 작업 토큰: 작업을 실행하는 프로젝트에서 사용자에게 패키지에 액세스할 수 있습니다. 다른 외부 프로젝트에 대한 액세스를 구성할 수 있습니다.
- 조직에서 두 단계 인증(2FA)을 사용하는 경우 범위가
api
로 설정된 개인 액세스 토큰을 사용해야 합니다. - CI/CD 파이프라인을 통해 패키지를 게시하는 경우 CI 작업 토큰을 사용해야 합니다.
GitLab CI/CD 사용
GitLab CI/CD를 사용하여 패키지를 빌드하거나 가져올 수 있습니다.
패키지 빌드하기
Maven, NuGet, npm, Conan, Helm 및 PyPI 패키지 및 Composer 의존성을 위해 CI_JOB_TOKEN
을 사용하여 GitLab을 인증할 수 있습니다.
시작하기 위해 사용할 수 있는 CI/CD 템플릿은 이 리포지터리에 있습니다.
CI/CD를 사용하여 GitLab 패키지 레지스트리를 사용하는 자세한 정보는 다음을 참조하세요:
패키지를 빌드하는 경우 패키지 세부 정보를 보면 확장된 활동 정보가 표시됩니다:
패키지를 게시한 파이프라인과 해당 파이프라인을 트리거한 커밋 및 사용자를 볼 수 있습니다. 그러나 히스토리는 특정 패키지의 다섯 가지 업데이트로 제한됩니다.
패키지 가져오기
이미 다른 레지스트리에 구축된 패키지가 있는 경우 패키지 가져오기기를 사용하여 GitLab 패키지 레지스트리로 가져올 수 있습니다.
지원되는 패키지 디렉터리은 다른 리포지터리에서 패키지 가져오기를 참조하세요.
저장 공간 사용량 줄이기
패키지 레지스트리의 저장 공간 사용량을 줄이는 방법에 대한 정보는 패키지 레지스트리 저장 공간 사용량 줄이기를 참조하세요.
패키지 레지스트리 비활성화
패키지 레지스트리는 자동으로 활성화됩니다.
만약 GitLab의 Self-Managed형 인스턴스를 사용하고 있다면, 귀하의 관리자는 GitLab 사이드바에서 패키지 및 레지스트리 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 관리 설명서를 참조하세요.
또한 프로젝트별로 패키지 레지스트리를 제거할 수 있습니다:
- 프로젝트에서 설정 > 일반으로 이동합니다.
- 가시성, 프로젝트 기능, 권한 섹션을 확장하고 패키지 기능을 비활성화합니다.
- 변경 사항 저장을 선택합니다.
배포 > 패키지 레지스트리 항목이 사이드바에서 제거됩니다.
패키지 레지스트리 가시성 권한
프로젝트 수준의 권한은 패키지 다운로드, 푸시 또는 삭제와 같은 작업을 결정합니다.
패키지 레지스트리의 가시성은 리포지터리와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어, 공개 프로젝트를 가지고 있고 리포지터리 가시성을 프로젝트 구성원만으로 설정한 경우 패키지 레지스트리는 공개됩니다. 패키지 레지스트리를 비활성화하면 모든 패키지 레지스트리 작업이 비활성화됩니다.
프로젝트 가시성 | 작업 | 최소 역할 |
---|---|---|
공개 | 패키지 레지스트리 보기 |
n/a , 인터넷 사용자는이 작업을 수행 할 수 있습니다.
|
공개 | 패키지 게시하기 | Developer |
공개 | 패키지 가져오기 |
n/a , 인터넷 사용자는이 작업을 수행 할 수 있습니다.
|
내부 | 패키지 레지스트리 보기 | Guest |
내부 | 패키지 게시하기 | Developer |
내부 | 패키지 가져오기 | Guest (1) |
비공개 | 패키지 레지스트리 보기 | Reporter |
비공개 | 패키지 게시하기 | Developer |
비공개 | 패키지 가져오기 | Reporter (1) |
패키지 레지스트리에서 누구나 가져오도록 허용
프로젝트 가시성과 관계없이 패키지 레지스트리에서 누구나 가져올 수 있도록 허용하려면:
- 왼쪽 사이드바에서 왼쪽 상단에 있는 검색 또는 이동을 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
- 설정 > 일반을 선택합니다.
- 가시성, 프로젝트 기능, 권한을 확장합니다.
- 누구나 패키지 레지스트리에서 가져올 수 있도록 허용 토글을 켭니다.
- 변경 사항 저장을 선택합니다.
인터넷 사용자 누구나 프로젝트의 패키지 레지스트리에 액세스할 수 있습니다.
누구에게나 풀 권한 부여를 비활성화
전제 조건:
- 관리자여야 합니다.
전역에서 패키지 레지스트리에서 누구에게나 풀 권한 부여 허용 토글을 숨기려면:
-
응용 프로그램 설정 변경에서
package_registry_allow_anyone_to_pull_option
을false
로 변경하십시오.
익명 다운로드는 비활성화되어 있으며, 패키지 레지스트리에서 누구에게나 풀 권한을 부여하기 허용 토글을 켰더라도 프로젝트에서 사용할 수 없습니다.
패키지 레지스트리에서 누구에게나 풀 권한을 부여하는 경우 알려진 여러 문제가 있습니다:
- 프로젝트 수준 엔드포인트는 지원되지만, 그룹 수준 및 인스턴스 수준 엔드포인트는 지원되지 않습니다. 그룹 수준 엔드포인트 지원은 이슈 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 |