在项目开发的过程中,我们通常在内部网络进行开发,在内网环境开发中我们经常遇到 Maven包、Npm包、Yum镜像、Docker镜像等无法联网下载问题,当然这些问题也可以通过离线安装的方式进行安装,但是做为软件开发项目组或者公司等,搭建自己的开发环境私服,也是一个非常好的选择。本文对Nexus私服搭建过程进行详细描述,并亲测可用。
搭建思路是,在外网环境搭建好Nexus私服,拷贝Nexus到内网服务器。
我们在Nexus的官网下载:
https://help.sonatype.com/repomanager3/product-information/download
使用版本为: nexus-3.37.3-02-unix.tar.gz
tar -zxvf nexus-3.37.3-02-unix.tar.gz
解压后的文件夹包括:
nexus-3.37.3-02 :程序的安装执行文件
sonatype-work :数据存储、缓存等文件
进入文件夹
cd nexus-3.37.3-02\bin
执行 ./nexus start 启动,启动过程长一点。
[root@VM-0-17-centos bin]# ./nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
如果启用了防火墙,需要添加访问端口
[root@VM-0-17-centos bin]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
重新加载防火墙配置
[root@VM-0-17-centos bin]# firewall-cmd --reload
success
访问地址:http://服务器地址:8081/
首次登录,需查看Nexus的密码:
cat /opt/sonatype-work/nexus3/admin.password
仓库类型分为3种:
group : 组类型,能够组合多个仓库为一个地址提供服务
hosted : 本地存储。像官方仓库一样提供本地私库功能
proxy : 提供代理其它仓库的类型
1、点击 “repositories” ->“Create repository”
2、选择 “maven2(proxy)”
3、输入仓库名:maven-aliyun
4、代理仓库地址:http://maven.aliyun.com/nexus/content/groups/public
<servers>
<server>
<id>nexus-releasesid>
<username>adminusername>
<password>admin123password>
server>
<server>
<id>nexus-snapshotsid>
<username>adminusername>
<password>admin123password>
server>
servers>
<mirrors>
<mirror>
<id>nexus-releasesid>
<mirrorOf>*mirrorOf>
<url>http://192.168.56.5:8081/repository/maven-public/url>
mirror>
<mirror>
<id>nexus-snapshotsid>
<mirrorOf>*mirrorOf>
<url>http://192.168.56.5:8081/repository/maven-releases/url>
mirror>
mirrors>
<profiles>
<profile>
<id>nexusid>
<repositories>
<repository>
<id>nexus-releasesid>
<url>http://nexus-releasesurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
repository>
<repository>
<id>nexus-snapshotsid>
<url>http://nexus-snapshotsurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-releasesid>
<url>http://nexus-releasesurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
pluginRepository>
<pluginRepository>
<id>nexus-snapshotsid>
<url>http://nexus-snapshotsurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
pluginRepository>
pluginRepositories>
profile>
profiles>
<activeProfiles>
<activeProfile>nexusactiveProfile>
activeProfiles>
两种方式都可以使用
<repositories>
<repository>
<id>aliyun-reposid>
<url>http://192.168.56.5:8081/repository/maven-public/url>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-pluginid>
<url>http://192.168.56.5:8081/repository/maven-public/url>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
仓库名称:npm-proxy
代理仓库地址:https://registry.npm.taobao.org
选择类型:raw(proxy)
仓库名称:node-sass
代理仓库地址:https://npm.taobao.org/mirrors/node-sass/
设置npm镜像地址
npm config set registry=http://192.168.56.5:8081/repository/npm-group/
设置node-sass镜像地址
npm config set sass_binary_site=http://192.168.56.5:8081/repository/node-sass/
{
"insecure-registries" : [
"192.168.56.5:8082"
]
}
重启docker
systemctl restart docker
修改已下载的redis镜像Tag
docker tag redis:5.0.3 192.168.56.5:8082/redis:5.0.3
push镜像到私服
docker push 192.168.56.5:8082/redis:5.0.3
[root@localhost ~]# docker pull 192.168.56.5:8082/redis:5.0.3
5.0.3: Pulling from redis
f7e2b70d04ae: Pull complete
421427137c28: Pull complete
4af7ef63ef0f: Pull complete
b858087b3517: Pull complete
2aaf1944f5eb: Pull complete
8270b5c7b90d: Pull complete
Digest: sha256:b33e5a3c00e5794324fad2fab650eadba0f65e625cc915e4e57995590502c269
Status: Downloaded newer image for 192.168.56.5:8082/redis:5.0.3
192.168.56.5:8082/redis:5.0.3
代理仓库地址:
http://mirrors.aliyun.com/centos/
拷贝 nexus-3.37.3-02 、sonatype-work 两个文件夹到服务器。