docker 部署私人 nuget 服務

使用docker搭建私有Nuget服務

首先在linux伺服器上創建兩個容器掛著目錄

mkdir /home/nuget/db
mkdir /home/nuget/packages
並且對該目錄指定寫入許可權
chmod 666 /home/nuget

使用如下創建容器命令運行Nuget服務
docker run -d -p 8085:80 -v /home/nuget/db:/var/www/db -v /home/nuget/packages:/var/www/packagefiles -e NUGET_API_KEY=f4b59444-6b98-4e3f-b1de-77e84f22a807 sunside/simple-nuget-server

image

docker ps -a 查看運行的所有容器
image

此時 瀏覽器中直接使用 IP+埠訪問,如下圖則說明部署成功
image

測試使用剛搭建的 Nuget 服務

1:新建項目

image

2:右鍵屬性,選擇包->常規,勾選在生成操作期間創建包文件

根據自己的需求修改包ID、標題、包版本(注意每次推送時候增加版本號)

image

3:找到生成->輸出,右邊的預生成事件框中輸入

del $(ProjectDir)$(OutDir)..\*.nupkg /s/q
exit 0

該命令的意思是 刪除 當前項目路徑下/當前輸出路徑下的 以.nupkg 結尾的所有文件

image

4:右鍵-> 重新生成

5:打開項目所在文件夾 進入 bin>Debug 目錄

nuget 包已經打包好了這時候我們需要推送到 nuget server 伺服器

image

6:再此目錄路徑上輸入 cmd,在cmd中定位到當前文件夾

image

7:輸入命令,此處IP換成自己伺服器IP

dotnet nuget push *.nupkg -k f4b59444-6b98-4e3f-b1de-77e84f22a807 -s //111.111.111.111:8085

image

自此自己的項目已經推送到 Nuget 伺服器上了 可以在掛著目錄中看到自己推送的項目,也可以在Nuget地址源添加自己的源地址 //111.111.111.111:8085 後再伺服器上查看到

image
image

每次推送都要寫這句命令,麻煩 所以我們自定義一個 vs 菜單來推送

image

image
標題 nuget debug push
命令 $(SolutionDir)\push.cmd
參數 $(ProjectDir)bin\Debug\*.nupkg
初始目錄 $(ProjectDir)bin\Debug

應用並保存 然後選擇工具->自定義

image

命令 -> 選擇上下文菜單 -> 選擇項目和解決方案上下文菜單|項目,然後點擊添加命令

image

選擇 工具-> 外部命令2

image

為啥選擇的是 外部命令2(外部命令2 後面的數字是表示自定義外部命令的索引)
image

項目的解決方案下面新建 push.cmd 文件
文件內容: dotnet nuget push *.nupkg -k ee28314c-f7fe-2550-bd77-e09eda3d0119 -s //111.111.111.111:8085
image

最後我們改個版本號 再項目上右鍵,就能看到 我們自定義的菜單,點擊就可義推送到 nuget 伺服器上了

image
image

此處我們也能看到每次改版本後推送的各個版本
image

Tags: