*이 글은 https://docs.gitlab.com/를 참조하여 작성되었습니다.
패키지 기능을 통해 GitLab은 다음과 같은 리포지토리로 작동할 수 있습니다.
소프트웨어 저장소 | 기술 | GitLab 버전으로 제공 |
---|---|---|
GitLab NuGet Repository를 사용하면 GitLab의 모든 프로젝트에 NuGet 패키지를 저장할 자체 공간을 가질 수 있도록 합니다. | 12.8+ | |
GitLab Conan Repository는 GitLab의 모든 프로젝트가 Conan 패키지 를 저장할 자체 공간을 가질 수 있도록 합니다. | 12.4+ | |
GitLab Maven Repository는 GitLab의 모든 프로젝트가 Maven 패키지 를 저장할 자체 공간을 가질 수 있도록 합니다. | 11.3+ | |
GitLab NPM Registry를 사용하면 GitLab의 모든 프로젝트에 NPM 패키지 를 저장할 자체 공간이있을 수 있습니다 . | 11.7+ |
패키지 기능 활성화
패키지 기능이 활성화되면 기본적으로 모든 새 프로젝트에서 리포지토리를 사용할 수 있습니다. 기존 프로젝트에 사용하려면 프로젝트 설정에서 명시적으로 다음과 같이 설정해야합니다.
옴니버스 깃랩 설치
/etc/gitlab/gitlab.rb 다음 행을 편집 하고 추가
gitlab_rails['packages_enabled'] = true
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
2. 소스에서 설치
config/gitlab.yml 다음 행을 편집 하고 추가
packages: enabled: true
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
로컬 스토리지 경로 변경
GitLab 설치 패키지는 Git 홈 디렉토리 /var/opt/gitlab/gitlab-rails/shared/packages/와 관련하여 소스 설치 및 패키지 아래에 저장됩니다 shared/packages/ 로컬 스토리지 경로를 변경하려면 다음과 같이 설정해야합니다.
옴니버스 깃랩 설치
/etc/gitlab/gitlab.rb 다음 행을 편집 하고 추가
gitlab_rails['packages_storage_path'] = "/mnt/packages"
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
2. 소스에서 설치
config/gitlab.yml 다음 행을 편집 하고 추가
packages: enabled: true storage_path: shared/packages
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
객체 스토리지 사용
로컬 스토리지에 의존하는 대신 오브젝트 스토리지를 사용하여 패키지를 저장할 수 있습니다.
옴니버스 깃랩 설치
/etc/gitlab/gitlab.rb 다음 행을 편집 하고 추가
(필요한 경우 주석 해제)
packages: enabled: true ## ## The location where build packages are stored (default: shared/packages). ## #storage_path: shared/packages object_store: enabled: false remote_directory: packages # The bucket name. #direct_upload: false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false). #background_upload: true # Temporary option to limit automatic upload (Default: true). #proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage. connection: ## ## If the provider is AWS S3, uncomment the following ## #provider: AWS #region: us-east-1 #aws_access_key_id: AWS_ACCESS_KEY_ID #aws_secret_access_key: AWS_SECRET_ACCESS_KEY ## ## If the provider is other than AWS (an S3-compatible one), uncomment the following ## #host: 's3.amazonaws.com' # default: s3.amazonaws.com. #aws_signature_version: 4 # For creation of signed URLs. Set to 2 if provider does not support v4. #endpoint: 'https://s3.amazonaws.com' # Useful for S3-compliant services such as DigitalOcean Spaces. #path_style: false # If true, use 'host/bucket_name/object' instead of 'bucket_name.host/object'.
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
2. 소스에서 설치
config/gitlab.yml 다음 행을 편집 하고 추가
(필요한 경우 주석 해제)
packages: enabled: true ## ## The location where build packages are stored (default: shared/packages). ## #storage_path: shared/packages object_store: enabled: false remote_directory: packages # The bucket name. #direct_upload: false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false). #background_upload: true # Temporary option to limit automatic upload (Default: true). #proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage. connection: ## ## If the provider is AWS S3, uncomment the following ## #provider: AWS #region: us-east-1 #aws_access_key_id: AWS_ACCESS_KEY_ID #aws_secret_access_key: AWS_SECRET_ACCESS_KEY ## ## If the provider is other than AWS (an S3-compatible one), uncomment the following ## #host: 's3.amazonaws.com' # default: s3.amazonaws.com. #aws_signature_version: 4 # For creation of signed URLs. Set to 2 if provider does not support v4. #endpoint: 'https://s3.amazonaws.com' # Useful for S3-compliant services such as DigitalOcean Spaces. #path_style: false # If true, use 'host/bucket_name/object' instead of 'bucket_name.host/object'.
파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
컨테이너 레지스트리 활성화
옴니버스 깃랩 설치
GitLab 12.5부터 Let 's Encrypt 통합에 내장 된 Omnibus GitLab을 사용하는 경우 컨테이너 레지스트리는 기본 도메인의 포트 5050에서 자동으로 활성화됩니다.
별도의 도메인을 사용하려면 컨테이너 레지스트리가 수신 할 도메인 이름을 구성하기만 하면 됩니다.
2. 소스에서 설치
1) 직접 레지스트리 를 설치해야합니다 .
2) 설치가 완료된 후 gitlab.yml
활성화하려면 레지스트리 설정을 구성해야 합니다.
3) 아래에있는 샘플 NGINX 구성 파일을 사용하고 , 및 TLS 인증서 경로와 일치하도록 편집하십시오.
lib/support/nginx/registry-ssl
gitlab.yml
내용은 다음과 같습니다.
registry: enabled: true host: registry.gitlab.example.com port: 5005 api_url: http://localhost:5000/ key: config/registry.key path: shared/registry issuer: gitlab-issuer
Parameter | Description |
---|---|
enabled | true / false GitLab에서 레지스트리를 활성화합니다. (Default False) |
host | 레지스트리가 실행되고 사용자가 사용할수 있는 호스트 URL입니다. |
port | 외부 레지스트리 도메인이 사용할 포트입니다. |
api_url | 레지스트리가 노출되는 내부 API URL입니다. 기본값은 http://localhost:5000입니다. |
key | Registry의 개인 키 위치입니다. |
path | 이것은 Registry에 지정된 것과 동일한 디렉토리 이여야 합니다 이 경로는 GitLab 사용자, 웹 서버 사용자 및 레지스트리 사용자가 읽을 수 있어야합니다. |
issuer | 이것은 Registry에 구성된 값과 같아야합니다. |
기존 GitLab 도메인에서 컨테이너 레지스트리 구성
레지스트리가 기존 GitLab 도메인을 사용하도록 구성된 경우 기존 GitLab TLS 인증서를 재사용 할 수 있도록 포트에 레지스트리를 표시 할 수 있습니다.
Registry 포트 (Default 5000)와 다른 포트를 선택해야 충돌이 발생하지 않습니다.
옴니버스 깃랩 설치
1) GitLab에 의해 사용되는 기존 TLS 인증서와 키의 경로뿐만 아니라 레지스트리 URL을 포함해야 합니다
/etc/gitlab/gitlab.rb
registry_external_url 'https://gitlab.example.com:4567'
TLS 인증서가없고 /etc/gitlab/ssl/gitlab.example.com.crt 키를 /etc/gitlab/ssl/gitlab.example.com.key 주석 처리 하지 않은 경우 아래 행을 주석 해제.
registry_nginx['ssl_certificate'] = "/path/to/certificate.pem" registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key"
2) 파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용.
3) 다음을 사용하여 확인.
openssl s_client -showcerts -servername gitlab.example.com -connect gitlab.example.com:443 > cacert.pem
2. 소스에서 설치
1) registry 설정을 아래와 같이 구성
/home/git/gitlab/config/gitlab.yml
registry: enabled: true host: gitlab.example.com port: 4567
2) 변경 사항을 적용 하려면 파일을 저장하고 GitLab 을 재시작
3) NGINX (도메인, 포트, TLS 인증서 경로)에서도 관련 사항을 변경
사용자는 다음을 사용하여 GitLab Credentials 컨테이너 레지스트리에 로그인 할 수 있어야 합니다.
docker login gitlab.example.com:4567
자체 도메인에서 컨테이너 레지스트리 구성
레지스트리가 자체 도메인을 사용하도록 구성된 경우 해당 특정 도메인에 대한 TLS 인증서 또는 기존GitLab 도메인의 하위 도메인에서 호스팅되는 경우 와일드 카드 인증서가 필요합니다
수동으로 생성 된 SSL 인증서 (여기 설명)뿐만 아니라 Let 's Encrypt에 의해 자동으로 생성 된 인증서도 Omnibus 설치에서 지원됩니다.
옴니버스 깃랩 설치
1) TLS 인증서와 키를 입력하고 올바른 권한이 있는지 확인
/etc/gitlab/ssl/registry.gitlab.example.com.key /etc/gitlab/ssl/registry.gitlab.example.com.crt
2) TLS 인증서가 작성되면 다음을 사용하여 편집
/etc/gitlab/gitlab.rb
registry_external_url 'https://registry.gitlab.example.com'
3) 파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
와일드 카드 인증서가 있는 경우 URL 외에 인증서 경로를 지정
/etc/gitlab/gitlab.rb
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key"
2. 소스에서 설치
registry 다음 설정으로 구성/home/git/gitlab/config/gitlab.yml
registry: enabled: true host: registry.gitlab.example.com
1) 변경 사항을 적용 하려면 파일을 저장하고 GitLab 을 재시작
2) NGINX (도메인, 포트, TLS 인증서 경로)에서도 관련 사항을 변경
사용자는 이제 GitLab Credentials을 사용하여 컨테이너 레지스트리에 로그인 할 수 있어야 합니다.
docker login registry.gitlab.example.com
Add Comment