軟體工程師的小事:到底要不要 Close

使用 Docker 建立 Nuget Server

先前的文章中有介紹使用 IIS 架設私有的 Nuget 伺服器,若要使用非 Windows 作業系統是不是一樣也可以架設呢?在微軟文件中有介紹很多可以建立 Nuget 伺服器的方法,本篇文章介紹使用 tomzo/liget 的 Docker image 建立以 Linux

微軟官方文件可參考文章下面的參考資料:Overview of Hosting Your Own NuGet Feeds | Microsoft Docs
文章環境

Docker Host 建置在 Ubuntu 的 Docker CE

使用 Docker 建立 LiGet 的 Nuget Server

使用 docker pull 取得 tomzo/liget 的 Docker 映像檔

docker pull tomzo/liget

使用 docker run 執行 tomzo/liget

LiGet 預設的連接埠為 9011
docker run -d \
   -p 9011:9011 \
   --name nuget-server \
   tomzo/liget

建立成功後使用瀏覽器連線到 http://{LiGet}:9011 可以看到 LiGet 的頁面

http://{LiGet}:9011/api/v3/index.json 為之後設定 Nuget 來源時要設定的網址

接下來上傳一個套件到 LiGet

將套件上傳到 LiGet 伺服器

使用 dotnet nuget push 指令將 Newtonsoft.Json 套件發佈到 LiGet 上

dotnet nuget push .\Newtonsoft.Json.12.0.1.nupkg
   --source http://{LiGet}:9011/api/v3/index.json 
   --api-key NUGET-SERVER-API-KEY
預設的 API KEY 為 NUGET-SERVER-API-KEY
若想要變更 Nuget Server 的 API KEY,請參考 LiGet 的使用說明
https://github.com/ai-traders/liget#usage

發布成功後重新連到 LiGet 就可以看到剛剛上傳的 Newtonsoft.Json 套件

注意事項

目前 LiGet 資料庫是使用 sqlite ,在 Visual Studio 中設定 LiGet 伺服器考參考下列文章:「上傳既有的 Nuget 套件到自行架設的 Nuget Server」章節「設定 Visual Studio 套件管理員」

將來源位址改成 http://{LiGet}:9011/api/v3/index.json 即可

在文件中也有提到使用 .NET Core 開發的第三方 Nuget Server,請自行參考

參考資料

留言