개인 Nuget 서버 튜토리얼 구축(1)

3173 단어
이 문서는 PZY에서 발췌한 것으로, 원문 링크:https://pzy.io/archives/2020/3/baget-tutorial-1.html
대하다NET 개발자에게 nuget은 없어서는 안 될 패키지 관리 도구입니다.이에 따라 대부분의 개발팀은 개인 nupkg 패키지를 관리하기 위해 내부에 Nuget 서버를 구축해야 한다.이 강좌에서 사용하는 Nuget 서버는 마이크로소프트 공식이 아니라 BaGet입니다.BaGet은 기반입니다.NET가 개발한 경량급 NuGet 서버는 오픈소스, 크로스플랫폼, 클라우드입니다.
Nuget 서버 Baget - Nuget 서버
BaGet이 실행할 수 있는 플랫폼은 로컬 컴퓨터, Docker, AWS, Azure, Google Cloud, Ari 클라우드입니다.본고는 로컬 컴퓨터에서 BaGet을 실행하는 것만 이야기합니다.
실행(Run)
BaGet은 기반이기 때문입니다.NET에서 개발한 것은 우선 다운로드하고 설치해야 한다.NET Core SDK를 다운로드하고 BaGet의 최신 버전을 추출한 다음dotnet BaGet을 사용합니다.dll 시작 서비스, 마지막으로 브라우저에서 찾아보기http://localhost:5000/.
Baget 실행에 성공하면 appsettings를 편집할 수 있습니다.json 파일은 BaGet 구성을 수정합니다.구성의 전체 목록은 다음 BaGet 구성을 참조하십시오.
구성(Configure)
appsettings를 편집할 수 있습니다.json 파일은 BaGet 구성을 수정합니다.
API 키 필요
사용자에게 패키지를 게시하기 위해 암호(API 키라고 함)를 요청할 수 있습니다.이를 위해 ApiKey 필드에서 필요한 API 키를 설정할 수 있습니다.
{    
"ApiKey": "NUGET-SERVER-API-KEY",    
... 
}

이제 사용자는 패키지를 푸시할 API 키를 제공해야 합니다.
dotnet nuget push -s http://localhost:5000/v3/index.json -k NUGET-SERVER-API-KEY package.1.0.0.nupkg

패스스루 캐시 설정
패스스루 캐시는 업스트림 소스 인덱스 패키지에서 사용할 수 있으며 패스스루 캐시를 사용하려면 다음과 같이 해야 합니다.
하면, 만약, 만약...org 복원 속도가 느리면 구축 속도가 빨라지고 오프라인 상태에서 패키지 복원을 활성화할 수 있습니다
다음 미러 설정은 BaGet을 nuget으로 구성합니다.org 인덱스 패키지:
{    
...    "Mirror": {        "Enabled":  true,        "PackageSource": "https://api.nuget.org/v3/index.json"    },    
... 
}


참고 PackageSource는 NuGet 서비스 색인 값입니다.
패키지 하드 삭제 사용
"왼쪽 키보드(left pad)"문제가 발생하지 않도록 BaGet의 기본 구성에서는 패키지를 삭제할 수 없습니다.BaGet은 패키지 삭제 요청을 받을 때마다 패키지 목록 지정을 취소합니다.나열되지 않은 패키지는 찾을 수 없지만 패키지의 ID와 버전을 알고 있으면 다운로드할 수 있습니다.PackageDeletionBehavior를 설정하여 이 동작을 덮어쓸 수 있습니다.
{    
...    
"PackageDeletionBehavior": "HardDelete",    
... 
}

패키지 덮어쓰기 사용
일반적으로 ID와 버전이 이미 확보된 경우 BaGet은 패키지 업로드를 거부합니다.AllowPackageOverwrites를 설정하여 BaGet을 기존 패키지를 덮어쓰도록 구성할 수 있습니다.
{    
...    
"AllowPackageOverwrites": true,    
... }

데이터베이스 구성
BaGet은 여러 개의 데이터베이스 엔진을 지원하여 패키지 정보를 저장합니다. 지원하는 데이터베이스는 MySQL, SQLite, SQLServer, PostgreSQL, AzureTable입니다.모든 데이터베이스 엔진은 연결을 설정하기 위해 연결 문자열이 필요합니다.ConnectionStrings를 방문하십시오.com, 모든 데이터베이스 엔진에 정확한 연결 문자열을 만드는 방법을 이해합니다.
환경 변수를 사용하거나 appsettings를 편집할 수 있습니다.json 파일은 선택한 데이터베이스 엔진을 설정합니다.
환경 변수
데이터베이스 설정과 관련된 두 개의 환경 변수가 있다.다음과 같습니다.
Database__Type: 사용할 데이터베이스 엔진입니다. 위에 열거된 데이터베이스 중 하나입니다. 예를 들어 PostgreSql 또는 Sqlite입니다.Database__ConnectionString: 데이터베이스 엔진의 연결 문자열입니다.
appsettings.json
데이터베이스 설정은 appsettings에 있습니다.json 프로필의 Database 키 아래:
{    
...    
"Database": {        
"Type": "Sqlite",        
"ConnectionString": "Data Source=baget.db"    
},    
... 
}

데이터베이스 구성과 관련된 두 가지 설정이 있습니다.
유형: 사용할 데이터베이스 엔진입니다. 위에 열거된 데이터베이스 중 하나입니다. 예를 들어PostgreSql이나 Sqlite입니다.ConnectionString: 데이터베이스 엔진의 연결 문자열입니다.
시간 관계로 인해 본고는 잠시 여기에 썼다. 다음은 개인 Nuget 서버 구축 튜토리얼의 후속 내용, 예를 들어 Docker 배치, 패키지 전송 등을 서술할 것이다.

좋은 웹페이지 즐겨찾기