在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)

参考地址:
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


在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第1张图片
效果图
三、创建Npm的Blob和仓库,并且推送代码到Nexus私服中

1、创建Npm专属的Blob(类似于数据库实例的功能)->Name= npm-repo-blob其余默认就行

在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第2张图片
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 组类型,可以组合多个仓库为一个地址提供服务
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第3张图片
npm-repo-hosted
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第4张图片
npm-repo-group
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第5张图片
三个npm仓库建完后的效果图
四、在Realms设置权限
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第6张图片
设置 npm publish的权限
五、新建普通用户,并且赋予权限
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第7张图片
图片.png
五、推送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"
}
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第8张图片
创建npm项目

登录npm login --registry=http://localhost:8061/repository/npm-repo-hosted/
推送npm publish --registry=http://localhost:8061/repository/npm-repo-hosted/

在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第9张图片
推送npm到私服
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第10张图片
推送效果
六、简化发布npm的命令

package.json文件中添加如下代码,则可以直接使用npm publish发布npm包到私有服务器:

  "publishConfig": {
    "registry": "http://localhost:8061/repository/npm-repo-hosted/"
  },
在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服)_第11张图片
图片.png
七、本地更新版本号(参考: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

你可能感兴趣的:(在Docker中安装Nexus-(Npm、Docker镜像、NuGet、Maven等私服))