Docker 搭建Nexus OSS3私服

Nexus 简介

Nexus 是个仓库管理器,目前主要分2大版本:2.X 和 3.X。2.X 主要支持的格式是Maven、P2、OBR、Yum。3.X主要支持的是Docker、NuGet、npm、Bower、Pypi、Ruby Gems,当然也支持构建工具Maven 和Gradle。Nexus 3只支持Oracle jdk8,不支持其它版本的JDK,比如OpenJDK。更多内容可以查看Nexus下载页面

Nexus 安装

本次安装的Nexus OSS的版本是3.1.0。
Nexus3 Docker安装脚本地址是docker-nexus3。其实安装起来比里面的描述要简单一些。先把镜像拉取下来,然后直接run 就可以了。但是因为当时操作的时候,拉取镜像的机器与实际安装的机器不是同一台,所以要把镜像推送的registry 仓库,然后再运行。

1
2
3
docker pull sonatype/nexus3:3.1.0
docker tag sonatype/nexus3:3.1.0 172.18.2.40:5000/sonatype/nexus3:3.1.0
docker push 172.18.2.40:5000/sonatype/nexus3:3.1.0

创建存储文件目录,并修改目录拥有者,容器里面运行的uid 是 200.

1
2
mkdir /data/nexus && chown -R 200 /data/nexus
docker run -d -p 8081:8081 -v /data/nexus:/nexus-data --name nexus 172.18.2.40:5000/sonatype/nexus3:3.1.0

就是这么简单就安装好了,如果不能访问的话看看是不是iptable 没有开放8081端口。
通过docker logs nexus 可以查看启动日志。

Nexus 使用

安装好之后默认的用户名/密码是admin/admin123,需要自己修改密码。
默认的maven-central 使用的是https://repo1.maven.org/maven2/ 地址,速度上没有UK 的快,所以修改为http://uk.maven.org/maven2/

因为Gradle和Maven都有在用,Gradle是可以直接使用Maven的仓库的,所以下面以Gradle举例。修改build.gradle文件里面的repositories。

1
2
3
4
5
6
repositories {
maven {
url 'http://172.18.2.40:8081/repository/maven-public/'
}
jcenter()
}

其实国内还是有阿里云的Nexus这种比较快的仓库http://maven.aliyun.com/nexus/content/groups/public/,但是一些私包不能上传到上面,只能自己搭建一个私服。