說明
Nexus Repository OSS是一款通用的軟件包倉庫管理(Universal Repository Manager)服務,通常部署在企業局域網內,作爲私服使用。一方面它可以作爲代理,緩存中央倉庫的公共組件,從而降低網絡延遲、解決重複下載問題;另一方面開發人員可以構建自己的項目組件至服務器,方便其他同事下載進行協同開發,極大提高開發效率。
nexus2.x版本只能作爲maven遠程倉庫提供java開發人員使用,從nexus3開始,nexus可以支持除java外更多的倉庫類型,如docker、yum、npm和helm等。
運行nexus3需要一臺服務器,cpu4核最好,2核可用,內存1g起步。
硬件:Raspberry Pi 4B(4g或8g版本)
系統:Ubuntu 20.04 LTS
Docker:18.09.9
nexus3鏡像:pi4k8s/nexus3:3.22.1-02
-
注意:因爲我們樹莓派4B本身並非x86,而是arm架構,且我們的系統裝的是64位ubuntu,因此鏡像只能選擇arm64v8架構的鏡像。 這裏選用的鏡像是本人基於exus-3.22.1-02構建的,可以直接使用。構建腳本如下: https://github.com/pi4k8s/pi4images/blob/master/nexus3/Dockerfile
安裝nexus3
數據目錄:/home/docker/server/nexus3/data
本實踐安裝的nexus3會提供3種類型倉庫服務,分別爲maven私服、docker私服和helm倉庫。對外開放3個端口,8081爲web端口、8082爲docker push端口,8083作爲docker pull端口。
docker run -itd --name=nexus3 -p 8081:8081 -p 8082:8082 -p 8083:8083 --privileged=true -v /home/docker/server/nexus3/data:/opt/sonatype-work pi4k8s/nexus3:3.22.1-02
鏡像提供3個環境變量,JVM_MINIMUM_MEMORY、JVM_MAXIMUM_MEMORY和JVM_MAXDIRECTMEMORYSIZE,默認值分別爲1024M、1560M和1024M,實踐中使用默認參數,用戶可自行選擇。
初始化
初始化主要是指admin登錄、修改默認密碼和是否允許匿名訪問,下面簡單示意說明
用瀏覽器訪問http://ip:8081進行初始化
點sign in 彈出登錄窗口如下
根據提示輸入用戶名和密碼,點sign in按鈕,開啓Setup
修改密碼
這裏我們設置爲允許匿名訪問
設置倉庫
如下圖逐步點擊齒輪圖標和Repository菜單下的Repositories菜單,進入倉庫列表頁面,可以看到nexus3默認是支持maven和nuget倉庫,接下來我們通過Create repository按鈕來創建docker倉庫和helm倉庫。
設置docker倉庫
本實踐一共設置三個docker倉庫,一個爲docker(proxy)類型,一個爲docker(hosted)類型,另外一個爲docker(group)類型。其中docker(hosted)類型倉庫端口配置爲8082,可以接受push請求;docker(group)類型倉庫端口配置爲8083,可以通過該倉庫同時拉取nexus3配置的docker(proxy)倉庫和docker(hosted)倉庫。這3個docker倉庫具體設置過程如下:
設置docker(proxy)倉庫
選擇docker(proxy)類型,進入倉庫設置界面如下
如上,只需要配置標紅的4個部分即可,其餘均可採取默認值。
設置docker(hosted)倉庫
選擇docker(hosted)類型,進入倉庫設置界面如下
如上,只需要配置標紅的4個部分即可,其餘均可採取默認值。
設置docker(group)倉庫
選擇docker(group)類型,進入倉庫設置界面如下
如上,只需要配置標紅的5個部分即可,其餘均可採取默認值;記得Member repositories將剛纔新建的兩個docker倉庫加入。
設置helm倉庫
本實踐中只涉及設置helm(hosted)類型倉庫,具體設置過程如下:
如上,只需要配置標紅的2個部分即可,其餘均可採取默認值。
到這裏,一個基於nexus3搭建的私服就部署好了。
具體倉庫訪問地址如下:
- maven倉庫訪問地址:http://192.168.5.50:8081/repository/maven-public/
- docker倉庫訪問地址:
- docker puh 192.168.5.50:8082
- docker pull 192.168.5.50:8083
- helm倉庫訪問地址:
- http://192.168.5.50:8081/repository/fastapp
-
其它運維命令
#啓停命令
docker start nexus3
docker stop nexus3
docker restart nexus3
#刪除
docker rm nexus3
#查看日誌
docker logs nexus3
#進入容器
docker exec -i -t nexus3 /bin/sh
參考