1. nenus部署
1.1 搜索镜像
[root@surpass ~]# docker search nexus
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/sonatype/nexus3 Sonatype Nexus Repository Manager 3 1188
docker.io docker.io/sonatype/nexus Sonatype Nexus 451 [OK]
docker.io docker.io/sonatype/nexus-iq-server Sonatype Nexus IQ Server 23
docker.io docker.io/nexusjpl/collection-manager 1
docker.io docker.io/nexusnetsoft/shopware-app 1
docker.io docker.io/nexusstats/nexus-stats 1
docker.io docker.io/nexus166/gobld https://github.com/nexus166/gobld 0
docker.io docker.io/nexus166/rocketchat https://github.com/nexus166/rocketchat-docker 0
docker.io docker.io/nexuscore/phase-smith 0
docker.io docker.io/nexuscore/warp-prism 0
docker.io docker.io/nexusera/auth 0
docker.io docker.io/nexusera/backmanager 0
docker.io docker.io/nexusera/ddi 0
docker.io docker.io/nexusera/device 0
docker.io docker.io/nexusera/influx 0
docker.io docker.io/nexusera/notify 0
docker.io docker.io/nexusjpl/cassandra 0
docker.io docker.io/nexusjpl/granule-ingester 0
docker.io docker.io/nexusjpl/nexus-webapp 0
docker.io docker.io/nexusjpl/ningester 0
docker.io docker.io/nexusjpl/solr-cloud 0
docker.io docker.io/nexusjpl/solr-cloud-init 0
docker.io docker.io/nexusnetsoft/bitbucket-pipline-php 0
docker.io docker.io/nexusuw/delay-server a rather crummy mock server that can retur... 0 [OK]
docker.io docker.io/openebs/mayastor-agent-ha-cluster Mayastor control plane agent - Nexus HA co... 0
我们发现docker.io/sonatype/nexus3的stars最多,所以我们就使用这个镜像。
1.2 下载镜像
docker pull sonatype/nexus3
1.3 创建数据文件夹
mkdir /docker/nexus
chmod 755 /docker/nexus
1.4 运行镜像
docker run -d --restart always --name nexus3 -p 8081:8081 -v /docker/nexus:/var/nexus-data sonatype/nexus3
--restart=always
:开机自启
/docker/nexus
:映射到本地的数据
1.5 登录网页
http://192.168.10.200:8081
通过上图登录提出密码在指定的文件中。
1.6 查询密码
# 进入容器
docker exec -it nexus3 sh
# 进入指定路径
cd /nexus-data/
# 查看密码文件是否存在
ls
# 查看文件内容
cat admin.password
8cff11dc-7bf9-48b4-9893-a449334a2d5c
此时我们获取到密码。进行登录
之后就是修改密码。
此时,nexus算是安装成功。
2. 创建npm私服
选择npm(hosted),配置如下:
2.2 创建npm(proxy)私有仓库
https://registry.npm.taobao.org
2.3 创建npm(group)私有仓库
2.4 权限设置
一定不能忘
,不然在adduser和publish会一直报错401:Unable to authenticate, need: BASIC realm=“Sonatype Nexus Repository Manager
3.发布npm包
3.1 npm 设置
npm config set registry http://192.168.10.200:8081/repository/npm-group/
3.2 创建一个npm包
mkdir surpass-test
cd surpass-test
npm init -y
{
"name": "surpass-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
name
是私服上最终显示的包名
3.3 创建index.js文件
module.exports = 123456;
3.4 注册登录
npm adduser --registry=http://192.168.10.200:8081/repository/npm-hosted/
并输入用户名和密码。
3.5 发布
3.5.1 发布方式1
npm publish --registry=http://192.168.10.200:8081/repository/npm-hosted/
3.5.2 发布方式2
在包下创建文件config.json,并写如下内容
"publishConfig": {
"registry": "http://192.168.10.200:8081/repository/npm-hosted/"
},
npm publish
3.5.3 升级发布包
# 升级大版本
npm version major
# 升级小版本
npm version minor // 如果没有prerelease,直接升级minor,同时patch设置为0
# 升级patch:1.0.0 --> 1.0.1
npm version patch // 如果有prerelease,则去掉prerelease,其他保持不变;如果没有prerelease,则升级minor
4. 下载私有包
4.1 设置url
npm config set registry http://192.168.10.200:8081/repository/npm-group/
4.2 创建npm文件夹
cd ~/desktop
mkdir npm-test
cd npm-test
npm init -y
package.json中新增
"dependencies": {
"surpass-test": "1.0.0"
}
4.3 下载依赖
npm i