Annuaire d'articles
1. Construire l'arrière-plan
Dans le développement quotidien de l'entreprise, différents projets auront des bibliothèques de classes publiques et construiront des entrepôts privés. Vous pouvez télécharger et mettre à jour les bibliothèques de classes via Nuget, ce qui peut réduire la charge de travail de maintenance ultérieure. Aujourd'hui, je vais partager comment utiliser Nuget pour construire Entrepôts privés Nuget.
2. Introduction au cadre
BaGet (prononcé "baguette") est un serveur NuGet léger. Il est open source, multiplateforme et déployable dans le cloud.
Vous pouvez exécuter BaGet sur votre plateforme préférée :
- sur ton ordinateur
- Docker
- Azur
- AWS
- Google Cloud
- Nuage d'Alibaba (Aliyun)
3. Construction d'entrepôts privés
1. Environnement
Système d'exploitation : Win10, Docker CentOS 7
: 20.10.21
2. Déployer sur win10
2.1 Installer le SDK
1. Assurez-vous d'avoir installé le SDK .NET
2.2 Télécharger et décompresser le package BaGet
(1) Adresse : https://github.com/loic-sharma/BaGet/releases, il suffit de télécharger BaGet.zip , les deux autres sont des fichiers de code source
(2) Décompressez-le dans un répertoire personnalisé local et vous pourrez voir les fichiers suivants :
2.3 Exécuter le projet
(1) La ligne de commande cmd entre dans le dossier actuel et exécute la commande suivante pour exécuter
dotnet BaGet.dll
(2) Visitez http://localhost:5000/, vous pouvez voir qu'il ressemble au nuget officiel
2.4 Projet de bibliothèque de classes
(1) Créez un projet de bibliothèque de classes nommé [BaGetFirstLib]
(2) Créez un fichier nommé [Test.cs], le code est le suivant :
namespace BaGetFirstLib
{
public class Test
{
/// <summary>
/// 打印Hello Word! 1.0版本
/// </summary>
public void Fun()
{
Console.WriteLine("Hello Word!");
}
/// <summary>
/// 新版本增加一个打印自身命名 1.1版本
/// </summary>
public static void Fun2()
{
Console.WriteLine($"{
nameof(Fun2)}是静态方法,被直接调用了!");
}
}
}
(3) Sélectionnez le projet->clic droit propriétés->package, et remplissez les informations pertinentes en fonction des besoins réels (itérations de version ultérieures, vous pouvez changer la "version du package" puis régénérer le projet) (4) Régénérer le project ou
solution , vous pouvez voir les fichiers empaquetés dans le répertoire bin/Debug, car je les ai empaquetés deux fois, donc voici 1.0 et 1.1
2.5 Publier le package sur Nuget privé
(1) Exécutez la commande suivante pour publier (Remarque : BaGetFirstLib.1.0.0.nupkg est le nom du fichier que vous avez empaqueté)
dotnet nuget push -s http://localhost:5000/v3/index.json BaGetFirstLib.1.0.0.nupkg
(2) Visitez à nouveau http://localhost:5000, et vous pouvez voir que le fichier de bibliothèque de classes que nous avons empaqueté a été téléchargé
2.6 Utilisation de BaGetFirstLib
(1) Créez un projet de console nommé [BaGetConsoleApp01]
(2) Cliquez pour configurer la "source du package", comme indiqué dans la figure ci-dessous, entrez le contenu suivant pour configurer les informations requises pour référencer l'entrepôt local
Private Package source
http://localhost:5000/v3/index.json
(3) Installez BaGetFirstLib
(4) Remplacez le contenu de Program.cs comme suit :
// See https://aka.ms/new-console-template for more information
using BaGetFirstLib;
Console.WriteLine("即将打印来自BaGetFirstLib的内容:");
Test test = new Test();
Console.WriteLine("New一个对象来调用方法:");
test.Fun();
Console.WriteLine("");
Console.WriteLine("调用静态方法:");
Test.Fun2();
(5) Vous pouvez voir que la méthode encapsulée dans la bibliothèque de classes BaGetFirstLib a été exécutée avec succès
2.7 Utiliser des mots de passe pour plus de sécurité
Lorsque nous publions ci-dessus, aucun mot de passe n'est requis, alors comment configurer le mot de passe à exiger lors de la publication ? Les étapes sont les suivantes :
(1) Recherchez [appsettings.json] dans le dossier de décompression BaGet et modifiez [ApiKey], définissez-le sur le mot de passe que vous souhaitez définir (
2) À ce stade, la réexécution échouera, car illustré dans la figure ci-dessous (Remarque : ici, un morceau de code a été ajouté au hasard à la classe Test d'origine, et la version 1.2 a été publiée, car s'il n'y a pas de changement à l'avenir, il ne sera pas repoussé) :
(3) Ajoutez des variables et des valeurs de mot de passe d'entrée, qui peuvent être poussées avec succès
3. Déployer sur Docker
3.1 Créer des fichiers associés
(1) Créez un dossier nommé [baget], et créez un dossier nommé [baget-data] dans ce dossier, et un fichier nommé [baget.env], comme suit :
[root ~]# cd /
[root /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root /]# cd home
[root home]# ls
baget
[root home]# cd baget/
[root baget]# ls
baget-data baget.env
(2) Utilisez la commande vim baget.env pour ajouter le contenu suivant au dossier, où ApiKey doit remplir votre mot de passe
# The following config is the API Key used to publish packages.
# You should change this to a secret value to secure your server.
ApiKey=你的密码
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
(3) Utilisez la commande suivante pour extraire l'image docker
docker pull loicsharma/baget
3.2 Tirer l'image
(4) Exécutez BaGet et le port exposé est 5555. Si vous ne pouvez pas y accéder, vous devez configurer un groupe de sécurité en arrière-plan du serveur correspondant (Alibaba Cloud, Tencent Cloud, etc.). $(pwd) lira automatiquement l'ApiKey dans baget.env :
3.3 courir
docker run --rm --name nuget-server -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest
3.4 Accès
4. Fin
C'est la fin de l'article, je ne peux que dire : Good Good Study, Day Day Up !