패키지 레지스트리
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자에 대해 GitLab을 비공개 또는 공개 레지스트리로 사용할 수 있습니다. GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:
히스토리
- GitLab 13.3에서 GitLab Premium에서 GitLab Free로 이동되었습니다.
GitLab 패키지 레지스트리를 사용하면 다양한 지원되는 패키지 관리자에 대해 GitLab을 비공개 또는 공개 레지스트리로 사용할 수 있습니다. 패키지를 게시하고 공유할 수 있으며, 하위 프로젝트에서 의존성으로 사용할 수 있습니다.
패키지 워크플로우#
GitLab 패키지 레지스트리를 사용하여 나만의 커스텀 패키지 워크플로우를 구축하는 방법을 알아보세요:
-
프로젝트를 패키지 레지스트리로 사용하여 모든 패키지를 하나의 프로젝트에 게시할 수 있습니다.
-
하나의 모노레포 프로젝트에서 여러 다양한 패키지를 게시할 수 있습니다.
패키지 보기#
프로젝트 또는 그룹의 패키지를 볼 수 있습니다:
- 프로젝트 또는 그룹으로 이동합니다.
- 배포 > 패키지 레지스트리로 이동합니다.
이 페이지에서 패키지를 검색, 정렬, 필터링할 수 있습니다. 브라우저에서 URL을 복사하여 붙여넣기하면 검색 결과를 공유할 수 있습니다.
패키지 관리자 구성 또는 특정 패키지 설치를 위한 유용한 코드 스니펫도 찾을 수 있습니다.
그룹에서 패키지를 볼 때:
- 그룹과 해당 프로젝트에 게시된 모든 패키지가 표시됩니다.
- 액세스할 수 있는 프로젝트만 표시됩니다.
- 프로젝트가 비공개이거나 프로젝트의 멤버가 아닌 경우 해당 프로젝트의 패키지는 표시되지 않습니다.
패키지를 만들고 업로드하는 방법은 패키지 유형에 대한 지침을 따르세요.
GitLab CI/CD 사용#
GitLab CI/CD를 사용하여 패키지 레지스트리에 패키지를 빌드하거나 가져올 수 있습니다.
패키지 빌드#
CI_JOB_TOKEN을 사용하여 GitLab으로 인증할 수 있습니다.
시작하려면 사용 가능한 CI/CD 템플릿을 사용할 수 있습니다.
CI/CD와 함께 GitLab 패키지 레지스트리 사용에 대한 자세한 내용은 다음을 참조하세요:
CI/CD를 사용하여 패키지를 빌드하면 패키지 세부 정보를 볼 때 확장된 활동 정보가 표시됩니다:

패키지를 게시한 파이프라인과 이를 트리거한 커밋 및 사용자를 볼 수 있습니다. 단, 히스토리는 특정 패키지의 최신 5번의 업데이트로 제한됩니다.
패키지 가져오기#
다른 레지스트리에서 이미 빌드된 패키지가 있는 경우 패키지 가져오기 도구를 사용하여 GitLab 패키지 레지스트리로 가져올 수 있습니다.
지원되는 패키지 목록은 다른 저장소에서 패키지 가져오기를 참조하세요.
스토리지 사용 줄이기#
패키지 레지스트리의 스토리지 사용을 줄이는 방법에 대한 자세한 내용은 패키지 레지스트리 스토리지 사용 줄이기를 참조하세요.
패키지 레지스트리 끄기#
패키지 레지스트리는 자동으로 켜집니다.
GitLab Self-Managed 인스턴스에서 관리자는 GitLab 사이드바에서 패키지 및 레지스트리 메뉴 항목을 제거할 수 있습니다. 자세한 내용은 GitLab 패키지 레지스트리 관리를 참조하세요.
특정 프로젝트에서 패키지 레지스트리를 제거할 수도 있습니다:
- 프로젝트에서 설정 > 일반으로 이동합니다.
- 가시성, 프로젝트 기능, 권한 섹션을 확장하고 패키지 기능을 비활성화합니다.
- 변경 사항 저장을 선택합니다.
사이드바에서 배포 > 패키지 레지스트리 항목이 제거됩니다.
패키지 레지스트리 가시성 권한#
프로젝트 권한은 멤버와 사용자가 패키지를 다운로드, 푸시 또는 삭제할 수 있는지 결정합니다.
패키지 레지스트리의 가시성은 저장소와 독립적이며 프로젝트 설정에서 제어할 수 있습니다. 예를 들어 공개 프로젝트가 있고 저장소 가시성을 프로젝트 멤버만으로 설정하면 패키지 레지스트리는 공개됩니다. 패키지 레지스트리 토글을 끄면 모든 패키지 레지스트리 작업이 꺼집니다.
| 프로젝트 가시성 | 작업 | 최소 필요 역할 |
|---|---|---|
| 공개 | 패키지 레지스트리 보기 | 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다. |
| 공개 | 패키지 게시 | Developer |
| 공개 | 패키지 가져오기 | 해당 없음. 인터넷상의 누구나 이 작업을 수행할 수 있습니다. |
| 내부 | 패키지 레지스트리 보기 | Guest |
| 내부 | 패키지 게시 | Developer |
| 내부 | 패키지 가져오기 | Guest (1) |
| 비공개 | 패키지 레지스트리 보기 | Reporter |
| 비공개 | 패키지 게시 | Developer |
| 비공개 | 패키지 가져오기 | Reporter (1) |
누구나 패키지 레지스트리에서 가져오도록 허용#
히스토리
프로젝트 가시성에 상관없이 누구나 패키지 레지스트리에서 가져올 수 있도록 허용하려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 비공개 또는 내부 프로젝트를 찾습니다.
- 설정 > 일반을 선택합니다.
- 가시성, 프로젝트 기능, 권한을 확장합니다.
- 누구나 패키지 레지스트리에서 가져오도록 허용 토글을 켭니다.
- 변경 사항 저장을 선택합니다.
인터넷상의 누구나 프로젝트의 패키지 레지스트리에 액세스할 수 있습니다.
누구나 가져오기 허용 비활성화#
사전 조건:
- 관리자여야 합니다.
누구나 패키지 레지스트리에서 가져오도록 허용 토글을 전역적으로 숨기려면:
- 애플리케이션 설정 업데이트
package_registry_allow_anyone_to_pull_option을false로 설정합니다.
패키지 레지스트리에서 누구나 가져오도록 허용 토글을 켠 프로젝트의 경우에도 익명 다운로드가 꺼집니다.
누구나 패키지 레지스트리에서 가져올 수 있도록 허용하는 경우 몇 가지 알려진 이슈가 있습니다:
- 프로젝트 엔드포인트가 지원됩니다.
- 그룹에 대한 NuGet 레지스트리 엔드포인트가 지원됩니다. 그러나 NuGet 클라이언트가 인증 자격 증명을 보내는 방식 때문에 익명 다운로드는 허용되지 않습니다. 이 설정이 켜져 있더라도 GitLab 사용자만 패키지 레지스트리에서 가져올 수 있습니다.
- 그룹에 대한 Maven 레지스트리 엔드포인트가 지원됩니다.
- 네임스페이스에 대한 Terraform 모듈 레지스트리 엔드포인트가 지원됩니다.
- 다른 그룹 및 인스턴스 엔드포인트는 완전히 지원되지 않습니다. 그룹 엔드포인트 지원은 에픽 14234에서 제안됩니다.
- Composer는 그룹 엔드포인트만 있어서 Composer와는 작동하지 않습니다.
- Conan과는 작동하지만
conan search사용은 작동하지 않습니다.
감사 이벤트#
히스토리
패키지가 게시되거나 삭제될 때 감사 이벤트를 생성합니다. 네임스페이스 소유자는 GraphQL API를 통해 audit_events_enabled 설정을 켤 수 있습니다.
감사 이벤트를 볼 수 있습니다:
- 패키지의 프로젝트가 그룹에 있는 경우 그룹 감사 이벤트 페이지에서.
- 패키지의 프로젝트가 사용자 네임스페이스에 있는 경우 프로젝트 감사 이벤트 페이지에서.
기여 수락#
다음 표에는 지원되지 않는 패키지 형식이 나열되어 있습니다. 이러한 형식에 대한 지원을 추가하기 위해 GitLab에 기여하는 것을 고려해 보세요.
