InfoGrab DocsInfoGrab Docs

GitLab용 Go 프록시 (지원 중단됨)

GitLab용 Go 프록시 사용 방법 및 설정에 대해 설명합니다.

히스토리 GitLab 13.1에서 go_proxy 라는 이름의 기능 플래그 와 함께 도입됨 . 기본적으로 비활성화됨. 이 기능은 실험 기능임. GitLab 19.1에서 사용 중단됨 . Warning 이 기능은 GitLab 19.1에서 사용 중단 되었으며 20.0에서 제거될 예정입니다. 사용할 수 있게 되면 Go 가상 레지스트리 를 대신 사용합니다. GitLab용 Go 프록시를 사용하면 GitLab의 모든 프로젝트를 Go 프록시 프로토콜 로 가져올 수 있습니다. GitLab용 Go 프록시는 실험 기능이며, 대규모 리포지터리에서 성능 문제가 발생할 수 있어 프로덕션 사용에는 적합하지 않습니다. 이슈 218083 을 참고합니다. GitLab은 Go 프록시가 활성화되어 있더라도 패키지 레지스트리에 Go 모듈을 표시하지 않습니다. 이슈 213770 을 참고합니다. Go 프록시가 사용하는 구체적인 API 엔드포인트에 대한 문서는 Go 프록시 API 문서 를 참고합니다. GitLab을 Go 프록시로 추가 # GitLab을 Go 프록시로 사용하려면 Go 1.13 이상을 사용해야 합니다. 사용할 수 있는 프록시 엔드포인트는 프로젝트별로 모듈을 가져오는 /api/v4/projects/:id/packages/go 입니다. GitLab에서 Go 모듈을 가져오려면 프로젝트별 엔드포인트를 GOPROXY 에 추가합니다. Go는 해당 엔드포인트에 질의한 뒤 기본 동작으로 돌아갑니다. go env -w GOPROXY='https://gitlab.example.com/api/v4/projects/1234/packages/go,https://proxy.golang.org,direct' 이렇게 구성하면 Go는 다음 순서로 의존성을 가져옵니다. Go가 프로젝트별 Go 프록시에서 가져오기를 시도합니다. Go가 proxy.golang.org 에서 가져오기를 시도합니다. Go가 버전 관리 시스템 작업( git clone , svn checkout 등)으로 직접 가져옵니다. GOPROXY 를 지정하지 않으면 Go는 2단계와 3단계를 수행하며, 이는 GOPROXY 를 https://proxy.golang.org,direct 로 설정한 것과 같습니다. GOPROXY 에 프로젝트별 엔드포인트만 있으면 Go는 해당 엔드포인트에만 질의합니다. Go 환경 변수를 설정하는 방법은 환경 변수 설정 을 참고합니다. 프라이빗 프로젝트에서 모듈 가져오기 # go 는 보안되지 않은 연결로 자격 증명을 전송하는 것을 지원하지 않습니다. 다음 단계는 GitLab이 HTTPS로 구성된 경우에만 동작합니다. GitLab용 Go 프록시에서 가져올 때 HTTP 기본 인증 자격 증명을 포함하도록 Go를 구성합니다. 공개 체크섬 데이터베이스에서 프라이빗 GitLab 프로젝트의 체크섬을 내려받지 않도록 Go를 구성합니다. 요청 인증 활성화 # 범위를 api 또는 read_api 로 설정한 개인 액세스 토큰 을 만듭니다. ~/.netrc 파일을 열고 다음 내용을 추가합니다. < > 안의 변수는 실제 값으로 바꿉