1 Docker 安裝 Nexus3 1.1 創建目錄 在硬碟上創建 Nexus3 的主目錄: mkdir -p /Users/yygnb/dockerMe/nexus3 為該目錄添加許可權: chmod 777 -R /Users/yygnb/dockerMe/nexus3 1.2 拉取鏡像 搜索鏡 ...
1 Docker 安裝 Nexus3
1.1 創建目錄
在硬碟上創建 Nexus3 的主目錄:
mkdir -p /Users/yygnb/dockerMe/nexus3
為該目錄添加許可權:
chmod 777 -R /Users/yygnb/dockerMe/nexus3
1.2 拉取鏡像
搜索鏡像:
docker search nexus3
搜索結果:
拉取鏡像:
docker pull sonatype/nexus3
1.3 運行容器
鏡像拉取完畢後,便可運行容器,這裡映射了 nexus-data 目錄到上面創建的目錄和三個埠。三個埠分別是:
8081 - nexus3 服務埠
8082 - host 鏡像倉庫的服務埠
8083 - group 鏡像倉庫的服務埠
運行容器:
docker run -tid \
-p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
-v /Users/yygnb/dockerMe/nexus3:/nexus-data \
--name nexus3 \
-e NEXUS_CONTEXT=nexus \
sonatype/nexus3
查看容器運行狀態:
docker ps -a | grep nexus3
查看容器的日誌:
docker logs -f nexus3
或
docker logs -f 547b
如果容器運行失敗,嘗試把 docker 記憶體和硬碟調大(Preferences --> Resources):
重啟 docker 後,重新啟動容器:
docker start nexus3
1.4 訪問私服
容器啟動後,在瀏覽器中訪問:
localhost:8081/nexus
點擊右上角”Sign in“按鈕。第一次登錄時,登錄彈窗中會顯示密碼位於/nexus-data/admin.password
。由於 /nexus-data 目錄已經映射到磁碟的 /Users/yygnb/dockerMe/nexus3 目錄,故可以在該目錄查看到 admin.password 文件。也可以在控制臺中進入容器查看:
進入容器:
docker exec -it nexus3 /bin/bash
查看密碼:
cat /opt/sonatype/sonatype-work/nexus3/admin.password
使用用戶名"admin" 和上面查看到的密碼登錄。登錄成功後,根據嚮導修改密碼。
在下一步配置匿名訪問時,通常選擇 Enable anonymous access
,這樣只有在上傳包的時候需要 profile,拉取包時可以匿名。
2 Nexus3 基本管理
由於後面要分別講述 JS 和 Java 使用 Nexus3 私服,兩者都涉及到倉庫創建,故單獨把這一塊提出來,後面便不再贅述。
2.1 角色管理
nexus3 支持創建角色和用戶,可以創建一個角色,讓該角色只能發佈包到私服。
1)進入角色管理界面,點擊右上角的“Create Role”創建角色,如下圖:
2)Role Type
選擇:nexus role
;
3)分別填寫角色 ID、名稱、描述,許可權選擇:nx-repository-view-*-*-*
4)填寫完畢後保存該角色。
2.2 用戶管理
創建完角色後,需要創建用戶,給該用戶分配 nx-deploy 的角色。
在用戶管理界面,點擊 Create local user
按鈕進入創建用戶界面。在創建用戶界面填寫表單信息,並分配上一步創建的角色 nx-deploy 。
id:syouyage
password:111111
email:[email protected]
如下圖:
用戶創建成功後,便可在用戶列表中看到剛創建的用戶。
可以退出登錄,測試使用剛纔創建的用戶名和密碼登錄nexus3。
2.3 設置 Realms
如果搭建 npm 私服,發佈 JS 庫時需要通過 npm login 等錄,在發佈的時候需要私服支持 npm bearer token 方式。
進入 Realms 設置界面,將 npm Bearer Token Realm
選到右側。如下圖所示:
2.4 倉庫管理
如下圖進入倉庫管理界面:
在倉庫列表界面可以點擊 Create repository
按鈕創建倉庫,也可以點擊其中某個倉庫修改倉庫信息或刪除倉庫。
2.5 倉庫類型
點擊 Create repository
按鈕後,會進入選擇倉庫類型的界面(Select Recipe)。Nexus3 有三大種類型:hosted、proxy、group。
1)hosted:宿主倉庫,即本地倉庫,該倉庫存放本地項目產生的構建,無論是團隊內部開發了通用組件庫、公共 jar 等,都是發佈到這裡面。
2)proxy:代理倉庫,用來代理遠程倉庫,如代理 Maven 中央倉庫等。
3)group:倉庫組,可以聚合上面兩者。因為在開發過程中,某些包是遠端的、某些包是內部私服中的,這樣就對應了兩個地址,使用倉庫組將 hosted 和 group 聚合,暴露為一個地址。
本文簡單介紹了 Docker 環境下搭建 Nexus3 私服以及 Nexus3 私服的基本操作,後文將分別針對 npm(前端)和 maven(後端)如何使用 Nexus3 私服進行詳細介紹。
感謝你花費寶貴的時間閱讀本文,如果本文給了你一點點幫助或者啟發,還請三連支持一下,點贊、關註、收藏,作者會持續與大家分享更多乾貨