打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用Nexus搭建maven docker私服

1.1 准备前工作

在Linux系统下先安装好JDK、Maven

1.2 下载安装Nexus

1.2.1 下载Nexus

wgethttps://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.18.1-01-unix.tar.gz

1.2.2 解压、重命名

tar -zxvfnexus-3.18.1-01-unix.tar.gz //解压

mv nexus-3.18.1-01nexus //重命名

1.2.3 配置Nexus

如果Linux硬件配置比较低的话,建议修改为合适的大小,否则会出现运行崩溃的现象

vinexus/bin/nexus.vmoptions //虚拟机选项配置文件

1.2.4 启动Nexus

启动 Nexus(默认端口是8081),Nexus 常用的一些命令包括:/usr/local/nexus/nexus/bin/nexus{start|stop|run|run-redirect|status|restart|force-reload},下面我们启动Nexus:

默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告

vi bin/nexus #(修改RUN_AS_USER=root)

重新启动Nexus:./bin/nexus start

注:Nexus默认端口8081,如果想修改端口。修改/conf/nexus.properties文件

1.2.5 修改nexus3配置文件(nexus.vmoptions)

vi bin/nexus.vmoptions

#调整Nexus内存参数,以防占用内存太大

-Xms256M

-XmX512M

-XX:MaxDirectMemerySize=512M

1.2.6 其他

1.3 使用Docker安装Nexus

1.3.1 查找镜像,并选取使用次数较多的镜像进行拉取

docker search nexus

docker pullsonatype/nexus3

mkdir /opt/nexus-data

chmod 777/opt/nexus-data

1.3.2 启动镜像

docker run -d --namenexus3 \

--restart=always \

-m 512m \

-p 8081:8081 \

-p 8082:8082 \

-p 8083:8083 \

-p 8084:8084 \

-p 8085:8085 \

-v/opt/nexus-data:/nexus-data \

-e MIN_HEAP=256m -eMAX_HEAP=512m \

-e JAVA_OPTS=’-Xms256m’-e JAVA_OPTS=’-Xmx512m’ -e JAVA_OPTS=’-XX:MaxDirectMemorySize=512m’ \

sonatype/nexus3

1.3.3 查看容器日志

docker logs nexus3

docker exec -it nexus3/bin/bash #进入docker容器内部

1.3.4 相关资料

Nexus官方:https://hub.docker.com/r/sonatype/nexus/

1.3.5 相关问题

1.3.5.1 启动nexus时,没有权限操作宿主机文件夹

相关日志:

Warning: Cannot openlog file: ../sonatype-work/nexus3/log/jvm.log

Warning: Forcing option-XX:LogFile=/tmp/jvm.log

java.io.FileNotFoundException:../sonatype-work/nexus3/tmp/i4j_ZTDnGON8hezynsMX2ZCYAVDtQog=.lock (No such fileor directory)

atjava.io.RandomAccessFile.open0(Native Method)

atjava.io.RandomAccessFile.open(RandomAccessFile.java:316)

atjava.io.RandomAccessFile.<init>(RandomAccessFile.java:243)

atcom.install4j.runtime.launcher.util.SingleInstance.check(SingleInstance.java:72)

at com.install4j.runtime.launcher.util.SingleInstance.checkForCurrentLauncher(SingleInstance.java:31)

atcom.install4j.runtime.launcher.UnixLauncher.checkSingleInstance(UnixLauncher.java:88)

atcom.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:67)

Unable to updateinstance pid: Unable to create directory /nexus-data/instances

/nexus-data/log/karaf.log(No such file or directory)

Unable to updateinstance pid: Unable to create directory /nexus-data/instances

mkdir: cannot createdirectory '../sonatype-work/nexus3/log': Permission denied

mkdir: cannot createdirectory '../sonatype-work/nexus3/tmp': Permission denied

OpenJDK 64-Bit ServerVM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No suchfile or directory

解决方案:修改宿主文件夹权限

chmod 777/opt/nexus-data

1.3.5.2 设置端口8082,拒绝访问

解决方案:修改nexus配置文件 nexus.properties

application-port=8082 #修改成自己想要的端口

1.4 配置Maven私有仓

1.4.1 配置Proxy仓,将默认仓设置为阿里云中央仓

1.4.2 配置hosted仓,包括两类

1.4.3 其他

1.5 Maven私有仓的使用

1.5.1 查找Maven私有仓地址

1.5.2 修改本地Maven的全局setting.xml,指向Maven proxy私有仓

vi/usr/local/maven3/conf/settings.xml

添加如下配置:

<mirror>

<id>local</id>

<mirrorOf>*</mirrorOf>

<name>localMaven</name>

<url>http://192.168.56.11:8081/repository/maven-aliyun</url>

</mirror>

1.5.3 设置本地Maven使用maven hosted私有仓进行发布

<server>

<id>java-release</id>

<username>username</username>

<password>userpassword</password>

</server>

<server>

<id>java-snapshot</id>

<username>username</username>

<password>userpassword</password>

</server>

1.5.4 修改项目的pom.xml,指向Maven hosted私有仓

<distributionManagement>

<repository>

<id>java-release</id>

<name>Local NexusRelease Repository</name>

<url>http://192.168.56.11:8081/repository/java-release/</url>

</repository>

<snapshotRepository>

<id>java-snapshot</id>

<name>Local NexusSnapshot Repository</name>

<url>http://192.168.56.11:8081/repository/java-snapshot/</url>

</snapshotRepository>

</distributionManagement>

备注:Id需要和setting.xml中设置的Server相关的Id保持一致,以及username、password需要能够访问私有仓的权限

1.5.5 执行项目执行mvndeploy命令,发布至Maven hosted私有仓

1.5.6 查看发布的jar包

1.5.7 其他

1.6 配置Docekr私有仓

1.6.1 确保正常启动后 使用浏览器访问http://服务器ip:8081

点击右上角登录 账号密码:admin/admin123

登录后点击设置界面 选择Repositories,点击Create repository,如图所示

1.6.2 选择仓库类型,这里选择hosted类型

1.6.3 配置仓库

该仓库指定一个唯一的名称、HTTP的端口、允许交互的API等

1.6.4 连接仓库

其他机器需要连接仓库才能进行push、pull等操作,连接仓库前需要进行配置

vi/etc/docker/daemon.json #设置如下:

{

"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],

"insecure-registries":["192.168.56.11:8082"]

}

}

systemctl daemon-reload

systemctl restartdocker

1.6.5 使用仓库

docker login -u admin-p admin123 192.168.56.11:8082 #注意这里的端口是配置仓库时选择的端口号

docker tag nginx:latest192.168.56.11:8082/kc.web.sso:1.0.34-test

docker push192.168.56.11:8082/kc.web.sso:1.0.34-test #上传镜像

docker pull192.168.56.11:8082/kc.web.sso:1.0.34-test #拉取镜像

1.6.6 参考资料

https://help.sonatype.com/repomanager3

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
使用nexus搭建maven仓库(本地私服)
使用Nexus搭建Maven私服教程(附:配置并使用私服教程)
给技术经理找了几款Docker开源镜像仓库,为什么经理选中了Sonatype Nexus(上)
Maven+Nexus环境实现Java打包环境部署
Maven教程!学Java,最通俗易懂的Java免费教程
Maven私服Nexus3.x环境构建操作记录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服