制品库 - Nexus3

Nexus3

  • Nexus3(Nexus Repository 3)是使用广泛的开源仓库管理平台,可以管理软件供应链中的组件、二进制文件和构建制品,包括docker、helm等
  • 社区版 Sonatype Nexus Repository OSS 可以免费且全面地管理二进制文件和制品
  • 企业版 Sonatype Nexus Repository Pro 具有更多的安全特性

官方信息

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 ~]# 

登录页面

允许匿名访问

使用页面

常见配置及操作

创建代理仓库

  • 在企业内部建立包管理工具的存储仓库,将公网仓库中的二进制包或制品代理到内网仓库中
  • 可以直接快速地访问内网的私服下载、构建依赖包,加快管道的构建速度
  • 代理仓库按需缓存,不会把公网仓库中的所有包下载到本地,首次访问会请求外部服务器下载这个包并进行缓存,再次访问时
  1. 管理页面上创建对应编译类型的代理仓库:proxy类型
  2. 修改客户端配置,例如在maven的settings.xml文件添加仓库信息
  3. 运行构建,测试可用性

制品上传

  1. 通过web页面上传制品,需选择目标仓库和填写必要信息
  2. 通过客户端命令上传,需配置仓库认证信息,例如在maven的settings.xml中添加仓库的上传账号信息
  3. 通过API上传,例如使用curl命令向Raw类型的通用仓库上传图片或压缩包

调试和调用REST API

  1. 在管理页面的System下查看API信息
  2. 选择对应的API,点击“Try it out”按钮开启调试
  3. 填写完成制品相关的必要信息后,点击Executen按钮执行操作
  4. 可以使用curl命令进行API的测试和调用

与Jenkins集成

  • Jenkins安装插件:Nexus Artifact Uploader
  • 使用片段生成器生成流水线代码
  • 运行流水线任务进行调试和调用
posted @ 2019-02-05 15:24  Anliven  阅读(474)  评论(0)    收藏  举报