在Docker中安裝Nexus-(Npm、Docker鏡像、NuGet、Maven等私服)

參考地址:
1、https://www.cnblogs.com/fuhai0815/p/9591979.html
2、http://m.itdecent.cn/p/77af52a75ad8
3、https://blog.csdn.net/lusyoe/article/details/54926937
4、https://blog.51cto.com/z190100425/2091696
5、https://blog.csdn.net/running_shuai/article/details/80482800
6、npm的package.json中文文檔(對(duì)基礎(chǔ)信息的配置非常有用):https://github.com/ericdum/mujiang.info/issues/6/

一、安裝Nexus

1、拉取鏡像docker pull sonatype/nexus3
2、運(yùn)行容器docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 --name nexus3 sonatype/nexus3 -v /opt/nexus-data:/nexus-data
tips1:/nexus-data:docker里存nexus數(shù)據(jù)目錄,所以將數(shù)據(jù)目錄存放到宿主機(jī)/opt/nexus-data
tips2: 不帶持久化的命令docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3

3、單獨(dú)持久化(TODO:volume)

  • 說明
項(xiàng)目 端口 備注 URL
Nexus UI 8081 nexus3網(wǎng)頁(yè)端 http://localhost:8081
Private repo 8082 docker(hosted)私有倉(cāng)庫(kù),可以pull和push http://localhost:8082
Proxy repo 8083 docker(proxy)代理遠(yuǎn)程倉(cāng)庫(kù),只能pull http://localhost:8083
Proxy group 8084 docker(group)私有倉(cāng)庫(kù)和代理的組,只能pull http://localhost:8084

4、編輯配置文件

  • 進(jìn)入容器vi /etc/systemd/system/multi-user.target.wants/docker.service

找到ExecStart屬性,在dockerd后面添加--insecure-registry 服務(wù)器IP:Docker倉(cāng)庫(kù)端口 ,最終如下:
ExecStart=/usr/bin/dockerd --insecure-registry 172.3.1.2:8082

  • 重啟Docker服務(wù)(Windows版本,直接通過UI的方式重啟)
    systemctl daemon-reload
    systemctl restart docker
二、訪問網(wǎng)頁(yè)端http://localhost:8081

默認(rèn)賬號(hào)密碼:admin/admin123


效果圖
三、創(chuàng)建Npm的Blob和倉(cāng)庫(kù),并且推送代碼到Nexus私服中

1、創(chuàng)建Npm專屬的Blob(類似于數(shù)據(jù)庫(kù)實(shí)例的功能)->Name= npm-repo-blob其余默認(rèn)就行

npm-repo-blob

2、創(chuàng)建三個(gè)Npm的Repositories(npm-repo-hosted、npm-repo-proxy、npm-repo-group )
倉(cāng)庫(kù)類型

項(xiàng)目 端口
hosted 本地存儲(chǔ),提供本地私庫(kù)功能
proxy 提供代理其他倉(cāng)庫(kù)的類型 ->官方:https://registry.npmjs.org,國(guó)內(nèi)淘寶:https://registry.npm.taobao.org
group 組類型,可以組合多個(gè)倉(cāng)庫(kù)為一個(gè)地址提供服務(wù)
npm-repo-hosted
npm-repo-group
三個(gè)npm倉(cāng)庫(kù)建完后的效果圖
四、在Realms設(shè)置權(quán)限
設(shè)置 npm publish的權(quán)限
五、新建普通用戶,并且賦予權(quán)限
圖片.png
五、推送npm到服務(wù)器

1、使用npm init -y ,在任意目錄創(chuàng)建npm項(xiàng)目

index.js代碼如下

        exports.showMsg = function () {
        console.log("This is my first module");
          };

package.json代碼如下

{
  "name": "npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
創(chuàng)建npm項(xiàng)目

登錄npm login --registry=http://localhost:8061/repository/npm-repo-hosted/
推送npm publish --registry=http://localhost:8061/repository/npm-repo-hosted/

推送npm到私服
推送效果
六、簡(jiǎn)化發(fā)布npm的命令

package.json文件中添加如下代碼,則可以直接使用npm publish發(fā)布npm包到私有服務(wù)器:

  "publishConfig": {
    "registry": "http://localhost:8061/repository/npm-repo-hosted/"
  },
圖片.png
七、本地更新版本號(hào)(參考:http://m.itdecent.cn/p/a4d5206a581e
    本地更新版本號(hào)
    比如我想來個(gè)1.0.1版本,注意,是最后一位修改了增1,命令:npm version patch
    比如我想來個(gè)1.1.0版本,注意,是第二位修改了增1,命令:npm version minor
    比如我想來個(gè)2.0.0版本,注意,是第一位修改了增1,命令: npm version major
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容