• 已删除用户
Administrator
发布于 2024-09-12 / 30 阅读
0

Nexus 入坑指南

“Sonatype Nexus Repository” 通常被称作为 Nexus , 是由 Sonatype 出品的目前世界上最流行的仓库管理软件。仓库管理的主要的目的,是存储源代码编译之后的成果物,并对其进行版本管理,以便为开发提供稳定的依赖来源。

Nexus 目前提供两个版本,Nexus2Nexus3 。Nexus2主要只用来管理maven,而Nexus3默认支持了maven、docker、npm、yum、apt等多种仓库的配置。今天主要以 Nexus3 为例介绍。

一、作用

很多第三方会提供官方仓库,不过大部分的公司都会选择自建仓库。主要是为了解决以下开发痛点

  1. 需要存储和管理私有包

  2. 官方仓库访问缓慢且占用外部带宽

  3. 官方仓库的包可能随着官方升级和维护而删除或更换地址

二、安装

2.1 Docker Compose 示例

  1. docker-compose.yml 文件

networks:
  1panel-network:
    external: true
services:
  nexus:
    # 容器运行的镜像
    image: registry.cn-shenzhen.aliyuncs.com/zhangqintech/nexus3:3.72.0
    # 自定义容器名称
    container_name: ${CONTAINER_NAME}
    # 添加环境变量
    environment:
      TZ: Asia/Shanghai
    # 容器总是重新启动
    restart: always
    # 端口映射
    ports:
      - 18081:8081
    # 配置容器连接的网络
    networks:
      - 1panel-network
    # 以 root 用户身份运行容器
    user: root
    # 将主机的数据卷或着文件挂载到容器里
    volumes: 
      - "/mydata/volumes/nexus/data:/nexus-data"
    # 部署配置
    deploy:
      # 资源配置
      resources:
        limits:
          cpus: ${CPU_LIMIT}
          memory: ${MEMORY_LIMIT}
  1. .env 文件

CONTAINER_NAME="cicd-nexus"
CPU_LIMIT=0
MEMORY_LIMIT=0

2.2 管理员账号密码

默认管理员账号:admin

默认管理员密码进入容器后查询 /nexus-data/admin.password 文件

三、常规配置

3.1 谨慎开启匿名访问

四、仓库分类

仓库按照类型区分,可以分为三种:代理仓库(Proxy)、宿主仓库(Hosted)、仓库组(Group)。

4.1 代理仓库(Proxy)

当PC访问中央仓库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。

这样的就可以大大节约外部宽带,只要其中一个人从中央仓库下来了,以后大家都是从Nexus仓库上进行下载。

4.2 宿主仓库(Hosted)

用于将第三方的包或者我们自己的包,放到自己的Nexus仓库上。

4.3 仓库组(Group)

能把多个仓库合成一个仓库来使用。把上几步创建的代理仓库和宿主仓库都加入到同一仓库组中,这样可以让仓库同时支持代理自己上传

五、参考

Nexus!最受欢迎的仓库管理软件