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=$1

if [ $# -eq 1 ]; then
  if [ ! -f ${FILE_SPECIFIED} ]; then
    echo "File ${FILE_SPECIFIED} does not exist"
    usage
    exit 1
  else
    INSTALL_FLAG="LOCAL"
  fi
fi

FILE_VERSION=10.9.0
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