【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus

本文是关于通过 Docker 进行安装部署 Nexus3 私服的快速入门和简单使用案例。

一、安装

1. 通过 docker 获取最新版本的 nexus3 镜像

docker pull sonatype/nexus3
创建 docker 镜像到宿主机的磁盘映射目录
Linux:
mkdir -p /home/nexus/data
chmod 777 -R /home/nexus/data
Windows:
手动创建任意文件夹,如:
F:\nexus3\data

2. 启动镜像

通过默认参数值启动镜像
Linux:
docker run -d --name nexus3 -p 8033:8081 --restart always -v /home/nexus/data:/nexus-data sonatype/nexus3
Windows:
docker run -d --name nexus3 -p 8033:8081 --restart always -v F:/nexus3/data:/nexus-data sonatype/nexus3

附带说明(非必要操作,新手可以忽略该步骤):
注:根据需要可以自定义配置参数运行 Nexus 镜像程序
镜像中的默认私服数据持久化目录为/nexus-data
该目录可以通过-Djava.util.prefs.userRoot= NEXU S DATA/ j a v a p r e f s 参数进行配置,将 / n e x u s − d a t a 路径改变为{NEXUS_DATA}/javaprefs 参数进行配置, 将/nexus-data路径改变为NEXUSDATA/javaprefs参数进行配置,将/nexusdata路径改变为{NEXUS_DATA}/javaprefs
通过 NEXUS_CONTEXT 变量控制 Nexus Context Path,默认值为 NEXUS_CONTEXT=/
可以按需修改,示例为:NEXUS_CONTEXT=nexus
通过-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m 设置相关服务运行内存
示例:
docker run -d -p 8081:8081 --name nexus3 -e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data2" sonatype/nexus3

3. 获取临时密码进行首次登录,然后默认修改成永久密码

方式(一)通过 docker 命令进入容器获取默认账号 admin 对应的临时登录密码

(1)查找对应容器 id
docker ps -a

(2) 进入容器终端命令行
docker exec -it /bin/bash

图片[1] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

(3)获取对应目录文件下的 admin 账号的临时密码

cat /nexus-data/admin.password

图片[2] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

方式(二)直接到对应镜像映射的磁盘目录上找到对应 admin.password 文件,以文本方式打开查看 admin 账号的临时密码

如本文中将容器的/nexus-data 目录映射到了宿主机磁盘的 F:\nexus3\data 目录,然后以文本文件方式打开 admin.password 查看对应临时密码

图片[3] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

4. 输入对应的 Nexus3 私服部署地址进行访问,然后进行修改默认账号 admin 的临时密码。

图片[4] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

通过 admin 账号和临时密码进行登录

图片[5] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

5. 初次登录成功后,弹出提示操作,根据默认提示,进入到第二步修改 admin 账号的密码为永久

图片[6] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

图片[7] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

最后,密码修改完成,可以点击右上角 sign out 进行退出重新登录

二、以下为正式使用 Nexus3 私服的过程

1. 创建仓库

图片[8] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

2. 选择要创建的仓库类型

图片[9] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

3. 对要创建的仓库进行属性

图片[10] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

4. 将刚刚创建的仓库添加到公共分组

图片[11] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

此处需要注意调整组内不同节点的顺序,对应 jar 包的加载会根据顺序从上到下依次加载,因此建议,私服排最上,公共仓库排最底下。

图片[12] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

5. 通过管理面板手动上传 jar 包到私服上

图片[13] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

图片[14] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

上传成功后,在 browse 界面查看

图片[15] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

三、以下为在 IDEA 工具下通过 Maven 自动编译打包将 jar 包自动上传到 Nexus 私服的过程

1. 配置 Maven 的 Settings.xml 文件,添加对应私服的仓库和对应的账号密码

进入 maven 的安装目录 D:\Program Files\apache-maven-3.8.2\conf 中找到 Settings.xml 进行编辑配置

图片[16] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

2. 在 servers 标签中添加私服的账号密码,在 mirrors 标签中配置私服的类型和地址

<servers><server><id>gitegg-release</id><username>admin</username><password>admin</password></server><server><id>gitegg-snapshots</id><username>admin</username><password>admin</password></server></servers><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>nexus-gitegg</id><url>http://localhost:8033/repository/maven-public/</url><mirrorOf>*</mirrorOf></mirror></mirrors>

3. 在项目工程的根 pom.xml 文件中进行发布配置

<project><distributionManagement><snapshotRepository><id>gitegg-snapshots</id><url>http://localhost:8033/repository/gitegg-snapshots/</url></snapshotRepository><repository><id>gitegg-release</id><url>http://localhost:8033/repository/gitegg-release/</url></repository></distributionManagement></project>

4. 最后通过 IDEA 下 Maven 工具的相关工程 Lifecycle 下的 deploy 选项进行发布到私服

图片[17] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

注意:Maven 会自动检测 version 版本号的命名,根据是否包含 SNAPSHOT 关键字进行匹配识别。

当发布 SNAPSHOT 版本时,必须在版本号末尾添加-SNAPSHOT 后缀,然后自动发布到 snapshotRepository 配置节点,示例:2.3.12-SNAPSHOT。

当发布 RELEASE 版本时,只要不带 SNAPSHOT 关键字的均识别为 RELEASE 版本,自动发布到 repository 节点,根据规范建议在 RELEASE 版本中添加.RELEASE 后缀,如 2.3.12.RELEASE。

5. 发布成功后,可在 Browse 对应仓库或者分组中查看到。

图片[18] - 【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享