制品库 - Nexus3
Nexus3
- Nexus3(Nexus Repository 3)是使用广泛的开源仓库管理平台,可以管理软件供应链中的组件、二进制文件和构建制品,包括docker、helm等
- 社区版 Sonatype Nexus Repository OSS 可以免费且全面地管理二进制文件和制品
- 企业版 Sonatype Nexus Repository Pro 具有更多的安全特性
官方信息
- https://my.sonatype.com/
- https://help.sonatype.com/index.html
- https://help.sonatype.com/en/sonatype-nexus-repository.html
- https://help.sonatype.com/en/download.html
- https://hub.docker.com/r/sonatype/nexus3/
Docker方式启动Nexus3
[root@node100 ~]# docker images |grep nexus
docker.m.daocloud.io/sonatype/nexus3 3.72.0 6bada5ef6e88 7 days ago 666MB
[root@node100 ~]#
[root@node100 ~]# docker run -itd --name nexus3 -p 8081:8081 -v /data/devops/nexus3/data:/nexus-data 6bada5ef6e88
0904e2c6d3e294bd914129b3c898dec1ed704c6ea279b1a39de9bcb25b665a8a
[root@node100 ~]#
[root@node100 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0904e2c6d3e2 6bada5ef6e88 "/opt/sonatype/nexus…" 4 seconds ago Up 4 seconds 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp nexus3
[root@node100 ~]#
[root@node100 ~]# docker logs -f nexus3
......
......
......
2024-09-12 08:11:04,659+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2024-09-12 08:11:04,662+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2024-09-12 08:11:04,691+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@5ee84ba2{Sonatype Nexus,/,null,AVAILABLE}
2024-09-12 08:11:04,751+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@6fbc582d{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
2024-09-12 08:11:04,752+0000 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @56748ms
2024-09-12 08:11:04,752+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer -
-------------------------------------------------
Started Sonatype Nexus OSS 3.72.0-04
-------------------------------------------------
2024-09-12 08:11:11,897+0000 INFO [periodic-4-thread-1] *SYSTEM org.sonatype.nexus.scheduling.internal.upgrade.datastore.QueuingUpgradeTaskScheduler - Running failed upgrade task Components - Normalize versions
2024-09-12 08:11:11,898+0000 INFO [periodic-4-thread-1] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Components - Normalize versions' [component.normalize.version] : state=RUNNING
2024-09-12 08:11:11,909+0000 INFO [periodic-4-thread-1] *SYSTEM org.sonatype.nexus.scheduling.TaskSchedulerImpl - Task 'Components - Normalize versions' [component.normalize.version] scheduled: now
2024-09-12 08:11:11,929+0000 INFO [quartz-9-thread-2] *SYSTEM org.sonatype.nexus.repository.content.tasks.normalize.NormalizeComponentVersionTask - Task log: /nexus-data/log/tasks/component.normalize.version-20240912081111921.log
2024-09-12 08:11:12,042+0000 INFO [quartz-9-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Components - Normalize versions' [component.normalize.version] state change RUNNING -> OK
^Ccontext canceled
[root@node100 ~]#
[root@node100 ~]#
[root@node100 ~]# docker exec -i nexus3 cat /nexus-data/admin.password
7fb0c06d-381d-437d-88a1-cadbbc484edb[root@node100 ~]#
[root@node100 ~]#
登录页面

允许匿名访问

使用页面

常见配置及操作
创建代理仓库
- 在企业内部建立包管理工具的存储仓库,将公网仓库中的二进制包或制品代理到内网仓库中
- 可以直接快速地访问内网的私服下载、构建依赖包,加快管道的构建速度
- 代理仓库按需缓存,不会把公网仓库中的所有包下载到本地,首次访问会请求外部服务器下载这个包并进行缓存,再次访问时
- 管理页面上创建对应编译类型的代理仓库:proxy类型
- 修改客户端配置,例如在maven的settings.xml文件添加仓库信息
- 运行构建,测试可用性
制品上传
- 通过web页面上传制品,需选择目标仓库和填写必要信息
- 通过客户端命令上传,需配置仓库认证信息,例如在maven的settings.xml中添加仓库的上传账号信息
- 通过API上传,例如使用curl命令向Raw类型的通用仓库上传图片或压缩包
调试和调用REST API
- 在管理页面的System下查看API信息
- 选择对应的API,点击“Try it out”按钮开启调试
- 填写完成制品相关的必要信息后,点击Executen按钮执行操作
- 可以使用curl命令进行API的测试和调用
与Jenkins集成
- Jenkins安装插件:Nexus Artifact Uploader
- 使用片段生成器生成流水线代码
- 运行流水线任务进行调试和调用
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。

浙公网安备 33010602011771号