【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus
本文是关于通过 Docker 进行安装部署 Nexus3 私服的快速入门和简单使用案例。
docker pull sonatype/nexus3
创建 docker 镜像到宿主机的磁盘映射目录
Linux:mkdir -p /home/nexus/data
chmod 777 -R /home/nexus/data
Windows:
手动创建任意文件夹,如:F:\nexus3\data
通过默认参数值启动镜像
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=${NEXUS_DATA}/javaprefs 参数进行配置, 将/nexus-data路径改变为${NEXUS_DATA}/javaprefs{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
方式(一)通过 docker 命令进入容器获取默认账号 admin 对应的临时登录密码
(1)查找对应容器 iddocker ps -a
(2) 进入容器终端命令行docker exec -it <容器id> /bin/bash
(3)获取对应目录文件下的 admin 账号的临时密码cat /nexus-data/admin.password
方式(二)直接到对应镜像映射的磁盘目录上找到对应 admin.password 文件,以文本方式打开查看 admin 账号的临时密码
如本文中将容器的/nexus-data 目录映射到了宿主机磁盘的 F:\nexus3\data 目录,然后以文本文件方式打开 admin.password 查看对应临时密码
通过 admin 账号和临时密码进行登录
最后,密码修改完成,可以点击右上角 sign out 进行退出重新登录
此处需要注意调整组内不同节点的顺序,对应 jar 包的加载会根据顺序从上到下依次加载,因此建议,私服排最上,公共仓库排最底下。
上传成功后,在 browse 界面查看
进入 maven 的安装目录 D:\Program Files\apache-maven-3.8.2\conf 中找到 Settings.xml 进行编辑配置
<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>
<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>
注意:Maven 会自动检测 version 版本号的命名,根据是否包含 SNAPSHOT 关键字进行匹配识别。
当发布 SNAPSHOT 版本时,必须在版本号末尾添加-SNAPSHOT 后缀,然后自动发布到 snapshotRepository 配置节点,示例:2.3.12-SNAPSHOT。
当发布 RELEASE 版本时,只要不带 SNAPSHOT 关键字的均识别为 RELEASE 版本,自动发布到 repository 节点,根据规范建议在 RELEASE 版本中添加.RELEASE 后缀,如 2.3.12.RELEASE。
- 点赞
- 收藏
- 关注作者
评论(0)