Nexus
环境准备
- centos7.6
- docker
nextus3部署
- 拉取镜像
bashdocker pull sonatype/nexus3
- 启动容器
bashdocker run -d -p 8081:8081 sonatype/nexus3
nexus的jvm默认内存比较大,可能起不来,我们可以调小一点
bashdocker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/some-other-dir" --restart=always sonatype/nexus3
看看有没有启动成功
bashcurl http://localhost:8081/
version: '3'
services:
nexus3:
image: sonatype/nexus3
environment:
- TZ=Asia/Shanghai
- "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/some-other-dir"
ports:
- '8081:8081'
- '8443:8443'
- '9102:9102'
- '9101:9101'
- '9103:9103'
- '9200:9200'
- '9201:9201'
restart: always
volumes:
- './keystore.jks:/opt/sonatype/nexus/etc/ssl/keystore.jks:ro'
- './keystore.cer:/opt/sonatype/nexus/etc/ssl/keystore.cer:ro'
- './nexus-default.properties:/opt/sonatype/nexus/etc/nexus-default.properties:ro'
- './jetty-https.xml:/opt/sonatype/nexus/etc/jetty/jetty-https.xml:ro'
- 查看密码
首先我们进入容器
bashdocker exec -it container_id bash
查看默认密码
bashcat /nexus-data/admin.password
SSL
docker不使用ssl或者使用自签的ssl每个客户端都需要配置一遍,不然会报错certificate signed by unknown authority
,所以选取免费的商业证书,
- 证书格式转化 https://myssl.com/cert_convert.html
- 使用nexus提供的https可参考 https://juejin.cn/post/7033440785294950430 但是还是会报错,待研究
- 使用nginx反向代理成功 https://www.jianshu.com/p/5f9bd492f186
项目配置
配置文件准备
- 项目根目录添加
.npmrc
文件
_auth
是 username:password 的base64值
registry=http://127.0.0.1:8081/repository/npm-group
_auth=ZGVwbG95ZXI6ZGVwbG95ZXI=
- 清理缓存
npm cache clean -f
发布私有包
⚠️注意私有包地址是hosted不是group或者proxy
-
直接使用命令关联仓库发布
bashnpm publish --registry=http://localhost:8081/repository/npm-hosted/
-
在package.json添加配置发布
json{ "publishConfig" : { "registry" : "http://localhost:8081/repository/npm-hosted/" } }
bashnpm publish
安装私有包
查看安装信息
bashnpm --loglevel info install react
cnpmcore
https://github.com/cnpm/cnpmcore
verdaccio
npm install -g verdaccio
//npm.zzfzzf.com/:_authToken=NpmToken
@zzf:registry=http://npm.zzfzzf.com/
always-auth=true
registry=https://npm.zzfzzf.com/
_auth=base64