使用 baget 搭建 nuget 私有服务
现在几乎所有语言都提供包管理工具,比如 JavaScript 的 npm ,Java 的 Maven ,Dart 的 pub 。.Net 程序当然是 NuGet 。NuGet 也出现很多年了,奇怪的是居然还有很多人不知道。
现在软件结构越来越复杂,在多个项目中往往需要共享一些库、组件等等。NuGet 为我们提供了方便的包管理功能。但是 NuGet 默认提供外网公开的服务,如果我们希望在公司内部或者自己家里进行一些库的管理,那么就需要自己来搭建 NuGet 私服。
Nuget 私服有几个工具可以搭建如官方的Nuget.Server 、ProGet 、BaGet 等。这里推荐 BaGet 这个工具,它跨平台又非常轻量化,易于部署,一行 docker 命令就可以运行起来。这里必选吐槽下 Nuget.Server 做为 NuGet 官方提供的一个工具居然还是依赖 Framework 的。
运行 BaGet 服务#
BaGet 有多种部署方式。比如可以从 Github 上拉取 release 后的发布文件手工 dotnet 运行,也可以直接使用 docker 容器化部署。现在是容器化的时代,那么当然首先 docker 部署咯。
# The following config is the API Key used to publish packages.
# You should change this to a secret value to secure your server.
ApiKey=NUGET-SERVER-API-KEY
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
先创建一个 baget.env 的环境变量配置文件
docker run --rm --name nuget-server -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest
使用 docker run 命令运行

访问一下这个服务,可以看到服务成功运行起来了。但是现在一个包都没有,所以显示的是 nothing here ...
构建 NuGet 包#
要推送 NeGet 包,首先我们需要包我们的库打包成 NuGet 包。

打包可以使用 nuget 的 cli 来打包。其实最简单的是在我们的项目上右键属性,在打包这个 tab 页上勾选 “在构建时生成 NuGet 包”,这样在我们每次生成项目完成的时候会在bin目录下生成对应的 nuget 包。
推送 NuGet 包#
Nuget 包打包完成后,就可以推送自己的包到这个服务了。
dotnet nuget push -s http://localhost:5555/v3/index.json .\AgileConfig.Client.1.1.8.11.nupkg
使用 dotnet nuget push 命令进行推送

推送成功会显示“已推送包”,期间有个警告,因为我们没有设置 apikey ,这个忽略。

再次刷新 BaGet 的页面,就可以看到我们刚才推送上去的包了。
使用 BaGet 源#
为了能够让我们的 VisualStudio 能够检索 BaGet 服务,我们需要进行简单的配置。

打开 VS > 工具 > 选项 > NuGet 包管理器 > 程序包源,点击绿色的加号,配置源名称baget , 地址:
http://192.168.0.117:5555/v3/index.json 点击确定。

随便打开一个项目解决方案,在 NuGet 包检索页面选择程序包源给 “baget” ,浏览页面就会列出这个源当前具有的包。这样就可以正常进行管理与安装了。
总结#
通过以上我们简单的演示了如果通过 docker 命令来运行一个 BaGet 服务。BaGet 跨平台、轻量化、易于部署,体验非常不错,大家可以试试。
https://github.com/loic-sharma/BaGet
使用 baget 搭建 nuget 私有服务的更多相关文章
- 使用 baget 搭建私有 nuget 私有服务
现在几乎所有语言都提供包管理工具,比如 JavaScript 的 npm ,Java 的 Maven ,Dart 的 pub ..Net 程序当然是 NuGet .NuGet 也出现很多年了,奇怪的是 ...
- Nuget私有服务搭建实战
最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3. Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了: https://docs.microsoft.com/en- ...
- Ubuntu简单搭建git私有服务
gitserver搭建过程 搭建gitserver过程记录 例如以下: 环境: serverUbuntu虚拟机(Boss),能通过网络訪问到(server地址:192.168.9.103). clie ...
- 基于 BaGet 搭建 Nuget 服务器
1 前言 1.1 BaGet 介绍 BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器. 1.2 环境介绍 操作系统:CentOS 7 使用 Docker 安装 2 安 ...
- 使用BaGet 搭建私有nuget 服务器
使用BaGet 搭建私有nuget 服务器 netNugetBaGet 引言 为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以 ...
- NuGet的使用、部署、搭建私有服务
NuGet的使用.部署.搭建私有服务 前言 什么是NuGet? 为什么要使用NuGet NuGet的优点 使用 Get-Help NuGet Install-Package Get-Package U ...
- 如何内网搭建NuGet服务器
NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,它可以直接安装开源社区中的各个公用组件,可以说是非常方便.不过,有些时候,公司内部的公用的基础类库,各个项目都有引用, ...
- 【转】如何内网搭建NuGet服务器
原文:http://www.cnblogs.com/zhangweizhong/p/7755332.html NuGet 是.NET程序员熟知的工具,它可以直接安装开源社区中的各个公用组件,可以说是非 ...
- Docker系列08—搭建使用私有docker registry
本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker dae ...
- 搭建docker私有仓库
保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...
随机推荐
- 碧血剑—新修版<随笔+剧情大纲>
明末,袁崇焕含冤而死,其子袁承志为部下相救,称为山宗,其时10岁左右,机缘巧合之下救下杨鹏举和张朝唐一行.随后山宗大会,明军来攻,在朱国治,孙仲寿等人保护下逃走,学得伏虎拳.遇到安大娘,安小惠和哑巴, ...
- 认识jmeter(一)
1.官网下载: https://jmeter.apache.org/download_jmeter.cgi 下载后解压: 2.安装 免安装,解压后,bin目录下双击jmeter.bat,会直接打开 会 ...
- ZSTUOJ刷题11:Problem D.--零起点学算法106——首字母变大写
Problem D: 零起点学算法106--首字母变大写 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 18252 Solved: 5211 Descr ...
- openSUSE Tumbleweed 安装原生微信
优麒麟网站上有提供下载. 之前用 Ubuntu的时候,直接安装就可以使用. ...
- UEC++学习(2)
第三章 断言 第一节 简单的断言 断言让程序的进程中断,方便程序员发现在哪里发生了问题. AGameBase * GameBase = nullptr; check(false); check(Gam ...
- python 函数默认值误区
当创建python函数时,默认值参数实在执行def语句的时候创建的也即是在创建该函数的时候,而不是在调用该函数的时候创建的. def append(x, lst = []): lst.append(x ...
- java-------token
https://el-admin.vip/guide/hdsc.html#%E6%96%B0%E5%BB%BA%E6%A8%A1%E5%9D%97
- Verilog 变量中位的数值类型
Verilog 变量中位的数值类型 Verilog变量中每个位(bit)的数值类型有四种,分别为1,0,Z,X.其中1,0比较明确就是高.低电平.而x, z在逻辑设计中也经常用到来建模.X,Z既可以大 ...
- jq的用法
选择页面中的元素,得到jQuery实例对象 ID选择器$("#save") 类选择器$(".class") 标签选择器$("div") 复合 ...
- 基于vue2.0创建vue项目
一.安装node环境 1.下载地址为:https://nodejs.org/en/ 2.检查是否安装成功:如果输出版本号,说明我们安装node环境成功 3.为了提高我们的效率,可以使用淘宝的镜像:ht ...