Nexus简介
Sonatype Nexus Repository Manager即Nexus,是Sonatype开发的最流行仓库管理系统。我们知道Git主要是管理源码,而Nexus主要用来管理源码编译后的文件。
Nexus主要有两个版本,Nexus2和Nexus3。Nexus2主要用来管理maven,而Nexus3支持maven、docker、npm、yum、apt、raw、nuget等多种仓库的管理。
仓库按照类型分为三种:代理仓库(Proxy)、宿主仓库(Hosted)、仓库组(Group),可以在创建仓库(“Repository”->“Repositories”->“Create repository”)的时候看到。
代理仓库(Proxy)
相当于配置docker镜像加速器。当有人从中央仓库下载镜像的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到本地。这样以后大家都是从Nexus仓库快速下载。maven-central仓库就是对中央仓库的代理。
宿主仓库(Hosted)
相当于本地仓库,不用外网,用来部署内部的版本构件,也可以用来存放无法从中央仓库获取的第三方库的构件。maven-releases和maven-snapshots均为宿主仓库。
仓库组(Group)
把多个仓库合成一个仓库来使用。把上几步创建的代理仓库和宿主仓库都加入到同一仓库组中,这样可以让仓库同时支持代理和自己上传。maven-public就是一个用户组,包含了上面三个仓库。
Sonatype Nexus Repository Manager有OSS和Pro两个版本,docker环境是OSS版,能满足基本需求。
Docker部署Nexus
通过“docker search nexus3”搜索nexus3镜像,通过“docker pull sonatype/nexus3”拉镜像,再通过下面的命令运行镜像。
docker run --name nexus3 \
-e TZ=Asia/Shanghai \
-v ~/docker/sonatype/nexus3:/nexus-data \
-p 8081:8081 \
-d sonatype/nexus3:latest
其中将“/nexus-data”目录挂载出来,以便更好维护nexus。
配置Nexus
第一次运行会比较慢,等容器启动完以后我们可以通过映射的8081端口访问nexus,第一次登录会提示管理员密码在“/nexus-data/admin.password”文件中,可以进入容器中查看,也可以直接查看挂载目录下该文件。
登录后会提醒修改密码。
配置匿名权限,“Disable anonymous access”则需要登录才能访问Nexus。
完成以后,点上面菜单栏的“Server administration and configuration”可以进行各种配置,在“Security”下面可以配置Privileges(权限)、Roles(角色)、Users(用户)等。
先通过“Security”->“Roles”->“Create Role”来创建角色,“Role ID”保存后不能修改,“Privileges”可以到“Security”->“Privileges”看有哪些权限及相关描述。
接下来通过“Security”->“Users”->“Create local user”来创建用户,“ID”保存后同样不能修改,在“Roles”下面就可以选我们刚刚创建的角色,创建完用户就可以用它来发布上传文件了。
可以通过“System”->“Email Server”来配置邮箱功能。
其中“Password”是授权码而不是邮箱密码,之前在其他文章有讲过怎么申请。
部署到云服务器上就可以配置SSL,我的服务器是用Nginx做代理所以只要添加个conf配置文件并代理到nexus即可。
更多内容请访问官方文档。
历史上的今天:
- 2020: 小程序开发[代码加入主动更新](0)
展开阅读全文