Docker 容器中搭建 nexus npm私库

时间:2022-03-01 06:19:23

1,版本

  dockers :1.13.1   ;nexus 3

2,安装

  docker pull liumiaocn/nexus

3,启动

项目 详细
Nexus UI 8081
private repo 8082
proxy repo 8083
URL http://192.168.20.71:8081/

  docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus liumiaocn/nexus 

  [root@master ~]# docker ps -a
  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  f3ef3fa410a4 liumiaocn/nexus "bin/nexus run" 24 hours ago Up 21 hours 0.0.0.0:8081-8083->8081-8083/tcp nexus

4,登录

  URL:  http://192.168.20.71:8081/

  用户名:admin  密码:admin123  (默认)

  Docker 容器中搭建 nexus npm私库

5,配置

  

仓库类型

具体仓库类型主要分为hosted/proxy/group三种。具体含义如下:

项目 详细说明
hosted 本地存储,提供本地私库功能
proxy 提供代理其他仓库的类型
group 组类型,可以组合多个仓库为一个地址提供服务

创建blob

创建一个blob用于存放npm相关数据。

项目 详细说明
Type File
Name npm-repo-blob
PATH /nexus-data/blobs/npm-repo-blob

Docker 容器中搭建 nexus npm私库

建议实际项目中各个仓库根据具体情况决定是否要分别创建blob进行对应,此处进行演示就通篇使用一个blob

创建priavete仓库

创建一个Hosted的仓库作为private仓库,用于管理非npm社区的第三方包或者自己开发的内容。具体设定信息如下:

项目 详细说明
类型 npm(hosted)
Name npm-repo-hosted
Blob store npm-repo-blob

其余Default设定即可

Docker 容器中搭建 nexus npm私库

创建proxy仓库

创建一个proxy仓库,具体设定信息如下:

项目 详细说明
类型 npm(proxy)
Name npm-repo-proxy
Remote Storage https://registry.npmjs.org
Blob store npm-repo-blob

其余Default设定即可

Docker 容器中搭建 nexus npm私库

创建group仓库

创建一个group仓库,具体设定信息如下:

项目 详细说明
类型 npm(group)
Name npm-repo-group
Blob store npm-repo-blob
Member repositories npm-repo-hosted
Member repositories npm-repo-proxy

Docker 容器中搭建 nexus npm私库

6,本地npm配置,验证版本

  安装版本: node v10.9.0  npm 6.2.0

  理论上来说,只要官方的tar.gz的文件名称格式不变,只需要改变脚本中的如下部分即可

  其他版本参考地址:https://nodejs.org/en/download/current/   

  [root@master ~]# npm -v
  6.2.0
  [root@master ~]# node -v
  v10.9.0

7,注意事项

  国内tb地址:registry=https://registry.npm.taobao.org

  默认配置查看:npm config list -l

  临时修改源地址:npm install --registry=http://192.168.20.71:8081/repository/npm-repo-proxy/

  永久修改:npm confige set registry=http://192.168.20.71:8081/repository/npm-repo-proxy/

  npm 和 cnpm 命令相同,使用cnpm时默认使用tb源。

参考地址:

https://blog.csdn.net/liumiaocn/article/details/78510679

https://www.centos.bz/2018/03/%E5%9C%A8-centos-7-%E5%B9%B3%E5%8F%B0%E4%BD%BF%E7%94%A8-cnpmjs-org-%E6%90%AD%E5%BB%BA-npm-%E7%A7%81%E6%9C%89%E4%BB%93%E5%82%A8/

#安装脚本
#!/bin/sh usage(){
echo "Usage: $0 [node-xxx.tar.gz]"
echo " node-xx.tar.gz: specified file will be used. Default will download directly"
echo
} INSTALL_FLAG="NET"
FILE_SPECIFIED=$ if [ $# -eq ]; then
if [ ! -f ${FILE_SPECIFIED} ]; then
echo "File ${FILE_SPECIFIED} does not exist"
usage
exit
else
INSTALL_FLAG="LOCAL"
fi
fi FILE_VERSION=10.9.
FILE_TAR_GZ=node-v${FILE_VERSION}-linux-x64
DOWNLOAD_URL="https://nodejs.org/dist/v${FILE_VERSION}/${FILE_TAR_GZ}.tar.gz" DIR_INSTALL=/usr/local/npm date
echo "##Install Step 1: download binary file ..."
date
if [ _"LOCAL" = _"$INSTALL_FLAG" ]; then
echo " Install by using local tar.gz file specified, downloading is skipped..."
else
cd /tmp
wget ${DOWNLOAD_URL}
fi date
ls ${FILE_TAR_GZ}.tar.gz
echo echo "##Install Step 2: tar xvpf to unzip file ..."
date
mkdir -p /usr/local/npm
cd /usr/local/npm
tar xvpf /tmp/${FILE_TAR_GZ}.tar.gz
mv node* node
pwd
ls
date
echo echo "##Install Step 3: create link file"
date
ln -s /usr/local/npm/node/bin/npm /usr/local/bin/npm
ln -s /usr/local/npm/node/bin/node /usr/local/bin/node echo echo "VERSION CONFORM:"
npm -v
node -v