参考地址:
1、https://www.cnblogs.com/fuhai0815/p/9591979.html
2、https://www.jianshu.com/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中文文档(对基础信息的配置非常有用):https://github.com/ericdum/mujiang.info/issues/6/
一、安装Nexus
1、拉取镜像docker pull sonatype/nexus3
2、运行容器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数据目录,所以将数据目录存放到宿主机/opt/nexus-data
tips2: 不带持久化的命令docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3
3、单独持久化(TODO:volume)
- 说明
项目 | 端口 | 备注 | URL |
---|---|---|---|
Nexus UI | 8081 | nexus3网页端 | http://localhost:8081 |
Private repo | 8082 | docker(hosted)私有仓库,可以pull和push | http://localhost:8082 |
Proxy repo | 8083 | docker(proxy)代理远程仓库,只能pull | http://localhost:8083 |
Proxy group | 8084 | docker(group)私有仓库和代理的组,只能pull | http://localhost:8084 |
4、编辑配置文件
- 进入容器
vi /etc/systemd/system/multi-user.target.wants/docker.service
找到ExecStart属性,在dockerd后面添加--insecure-registry 服务器IP:Docker仓库端口 ,最终如下:
ExecStart=/usr/bin/dockerd --insecure-registry 172.3.1.2:8082
- 重启Docker服务(Windows版本,直接通过UI的方式重启)
systemctl daemon-reload
systemctl restart docker
二、访问网页端http://localhost:8081
默认账号密码:admin/admin123
三、创建Npm的Blob和仓库,并且推送代码到Nexus私服中
1、创建Npm专属的Blob(类似于数据库实例的功能)->Name= npm-repo-blob
其余默认就行
2、创建三个Npm的Repositories(npm-repo-hosted、npm-repo-proxy、npm-repo-group )
仓库类型
项目 | 端口 |
---|---|
hosted | 本地存储,提供本地私库功能 |
proxy | 提供代理其他仓库的类型 ->官方:https://registry.npmjs.org,国内淘宝:https://registry.npm.taobao.org |
group | 组类型,可以组合多个仓库为一个地址提供服务 |
四、在Realms设置权限
五、新建普通用户,并且赋予权限
五、推送npm到服务器
1、使用npm init -y
,在任意目录创建npm项目
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"
}
登录npm login --registry=http://localhost:8061/repository/npm-repo-hosted/
推送npm publish --registry=http://localhost:8061/repository/npm-repo-hosted/
六、简化发布npm的命令
在package.json
文件中添加如下代码,则可以直接使用npm publish
发布npm包到私有服务器:
"publishConfig": {
"registry": "http://localhost:8061/repository/npm-repo-hosted/"
},
七、本地更新版本号(参考:https://www.jianshu.com/p/a4d5206a581e)
本地更新版本号
比如我想来个1.0.1版本,注意,是最后一位修改了增1,命令:npm version patch
比如我想来个1.1.0版本,注意,是第二位修改了增1,命令:npm version minor
比如我想来个2.0.0版本,注意,是第一位修改了增1,命令: npm version major