Buy Me a Coffee

在隔離的開發環境中建立私有 NuGet 倉庫

在完全與世隔絕的開發環境中,我們需要建立私有的存儲庫來管理依賴。以下是三種主要的私有存儲庫設置方法:

  • NuGet 私有倉庫:BaGet
  • npm 私有倉庫:Verdaccio
  • 私有的 Docker 映像檔

安裝私有 NuGet 倉庫

安裝環境:RedHat 8 安裝 .NET Core 相關套件

設定安裝路徑及權限

# 安裝在 /BagetRespository
mkdir -p /BagetRespository && mkdir -p /BagetRespository/packages
cd /BagetRespository

# 設定目錄權限
chmod -R 750 /BagetRespository
chmod g+s /BagetRespository
chmod g+w /BagetRespository

# 開放 5555 埠
firewall-cmd --zone=public --add-port=5555/tcp --permanent

# 重啟防火牆讓設定生效
firewall-cmd --reload

建立環境變數檔案 /BagetRespository/baget.env 內容如下

# 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=/BagetRespository/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/BagetRespository/baget.db
Search__Type=Database

拉取 BaGet 並部署容器

# pull BaGet 映像檔案
docker pull loicsharma/baget

# 執行 docker BaGet 容器
docker run -d --name nuget-server -p 5555:80 --env-file /BagetRespository/baget.env -v /BagetRespository loicsharma/baget:latest

# 使用 docker container ls 檢核是否已成功執行
docker container ls