说明
Nexus Repository OSS是一款通用的软件包仓库管理(Universal Repository Manager)服务,通常部署在企业局域网内,作为私服使用。一方面它可以作为代理,缓存中央仓库的公共组件,从而降低网络延迟、解决重复下载问题;另一方面开发人员可以构建自己的项目组件至服务器,方便其他同事下载进行协同开发,极大提高开发效率。
nexus2.x版本只能作为maven远程仓库提供java开发人员使用,从nexus3开始,nexus可以支持除java外更多的仓库类型,如docker、yum、npm和helm等。
运行nexus3需要一台服务器,cpu4核最好,2核可用,内存1g起步。
硬件:Raspberry Pi 4B(4g或8g版本)系统:Ubuntu 20.04 LTSDocker:18.09.9nexus3镜像:pi4k8s/nexus3:3.22.1-02
注意:因为我们树莓派4B本身并非x86,而是arm架构,且我们的系统装的是64位ubuntu,因此镜像只能选择arm64v8架构的镜像。 这里选用的镜像是本人基于exus-3.22.1-02构建的,可以直接使用。构建脚本如下: https://github.com/pi4k8s/pi4images/blob/master/nexus3/Dockerfile
安装nexus3
数据目录:/home/docker/server/nexus3/data
本实践安装的nexus3会提供3种类型仓库服务,分别为maven私服、docker私服和helm仓库。对外开放3个端口,8081为web端口、8082为docker push端口,8083作为docker pull端口。
docker run -itd --name=nexus3 -p 8081:8081 -p 8082:8082 -p 8083:8083 --privileged=true -v /home/docker/server/nexus3/data:/opt/sonatype-work pi4k8s/nexus3:3.22.1-02
镜像提供3个环境变量,JVM_MINIMUM_MEMORY、JVM_MAXIMUM_MEMORY和JVM_MAXDIRECTMEMORYSIZE,默认值分别为1024M、1560M和1024M,实践中使用默认参数,用户可自行选择。
初始化
初始化主要是指admin登录、修改默认密码和是否允许匿名访问,下面简单示意说明
用浏览器访问http://ip:8081进行初始化
点sign in 弹出登录窗口如下
根据提示输入用户名和密码,点sign in按钮,开启Setup
修改密码
这里我们设置为允许匿名访问
设置仓库
如下图逐步点击齿轮图标和Repository菜单下的Repositories菜单,进入仓库列表页面,可以看到nexus3默认是支持maven和nuget仓库,接下来我们通过Create repository按钮来创建docker仓库和helm仓库。
设置docker仓库
本实践一共设置三个docker仓库,一个为docker(proxy)类型,一个为docker(hosted)类型,另外一个为docker(group)类型。其中docker(hosted)类型仓库端口配置为8082,可以接受push请求;docker(group)类型仓库端口配置为8083,可以通过该仓库同时拉取nexus3配置的docker(proxy)仓库和docker(hosted)仓库。这3个docker仓库具体设置过程如下:
设置docker(proxy)仓库
选择docker(proxy)类型,进入仓库设置界面如下
如上,只需要配置标红的4个部分即可,其余均可采取默认值。
设置docker(hosted)仓库
选择docker(hosted)类型,进入仓库设置界面如下
如上,只需要配置标红的4个部分即可,其余均可采取默认值。
设置docker(group)仓库
选择docker(group)类型,进入仓库设置界面如下
如上,只需要配置标红的5个部分即可,其余均可采取默认值;记得Member repositories将刚才新建的两个docker仓库加入。
设置helm仓库
本实践中只涉及设置helm(hosted)类型仓库,具体设置过程如下:
如上,只需要配置标红的2个部分即可,其余均可采取默认值。
到这里,一个基于nexus3搭建的私服就部署好了。
具体仓库访问地址如下:
maven仓库访问地址:http://192.168.5.50:8081/repository/maven-public/
docker仓库访问地址:
docker puh 192.168.5.50:8082
docker pull 192.168.5.50:8083
helm仓库访问地址:
http://192.168.5.50:8081/repository/fastapp
其它运维命令
#启停命令docker start nexus3docker stop nexus3docker restart nexus3#删除docker rm nexus3#查看日志docker logs nexus3#进入容器docker exec -i -t nexus3 /bin/sh
参考
树莓派4B安装 Ubuntu 20.04 LTS
树莓派4B安装 docker18.09.9