在隔離的開發環境中建立私有 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