引言
上一篇教程中按照了 docker 作为容器化工具,在本篇教程中将使用 docker-compose 安装 nexus。
- 搭建内网开发环境(一)|基于docker快速部署开发环境
什么是 Nexus
Nexus是一个强大的仓库管理器,主要用于搭建和管理公司内部的软件构件仓库。Nexus可以作为 maven、docker、npm等工具的仓库服务器,允许用户在本地网络中共享和管理依赖项和构件。它支持多种仓库类型和协议,能够提高开发效率并节省外部带宽。
Nexus 安装
通过 docker-compose 安装,docker-compose.yaml 文件如下,执行 docker-compose up -d,等待容器安装完成。
- 创建挂在目录:
/opt/nexus/nexus-data
- docker-compose 文件
version: "3.8"
networks:
env_net:
driver: bridge
services:
nexus:
image: sonatype/nexus3:latest
container_name: nexus
ports:
- "8081:8081"
networks:
- env_net
volumes:
- /opt/nexus/nexus-data:/nexus-data
privileged: true
注:如果是纯内网情况下,先要将 nexus 的镜像下载好,毕竟加载到内网服务器的 docker 容器中;这个在上一篇的教程中有说明如何操作。
Nexus 使用
登录 Nexus
- 访问 nexus,端口号为 8081,访问地址为 http:ip:8081
- 获取登录默认密码
- 进入 nexus 容器,
docker exec -it nexus bash
- 在容器内执行命令
cat /nexus-data/admin.password
获取密码
- 进入 nexus 容器,
- 登录 nexus,默认用户名 admin,默认密码为上述步骤 2 获取的,第一次登录会要求修改密码
角色 Roles
创建角色
左侧菜单选择 Security -> Roles,点击按钮 Create Role,type 选择 Nexus Role,输入相关信息,并授予相关权限点击保存。
用户 Uses
创建用户
左侧菜单选择 Security -> Users,点击按钮 Create lcoal user,type 选择 Nexus Role,输入相关信息,并授予相关权限点击保存。
存储空间 Blob Stores
储存空间是用来存储 nexus 中产生的依赖,每个 hosted 的类型的仓库都需要选择对应的存储空间来存放上传的文件。
创建储存空间
左侧菜单选择 Repository -> Blob Stores,点击按钮 Create Blob Store,type 选择 File,输入名称点击保存。
仓库 Repositories
仓库是 nexus 用来对外提供依赖服务的逻辑空间。
仓库介绍
进入Browse页面查看当的仓库信息
默认仓库说明
- maven-central maven中央仓库,默认从https://repo1.maven.org/maven2/拉取依赖
- maven-releases 私库发行版
- maven-snapshots 私库快照版
- maven-public 仓库分组,将上面三种仓库组合在一起对外提供服务
仓库类型:
- proxy,代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
- group,仓库组,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots
- hosted,私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
- 3rd party:未发布到公网的第三方jar (3.x去除了)
- Snapshots:本地项目的快照仓库
- Releases: 本地项目发布的正式版本
- Central:中央仓库
- Apache Snapshots:Apache专用快照仓库(3.x去除了)
创建仓库
左侧菜单选择 Repository -> Repositories,点击按钮 Create repository,选择要创建的类型,输入相关信息,点击保存。如:创建一个 docker (hosted)本地仓库
结语
本文介绍了通过 docker-compose 部署 nexus,并介绍了 nexus 的基本使用。