大家好!之前有一期文章我们写的是springboot 如何导入本地jar,未介绍私仓导入,今天公司的maven 私仓有问题,和同事讨论了下。正好向大家介绍如何使用 Docker Compose 部署 Nexus 仓库,以帮助您更好地管理和发布您的软件包和依赖项。Nexus 是一个功能强大的仓库管理器,它能够帮助我们管理各种构建工具和项目的组件,并提供了丰富的功能来支持软件开发过程。
首先,确保您的系统已安装 Docker 和 Docker Compose。如果您尚未安装,请参考 Docker 官方文档
在您选择的目录下创建一个新文件,并将其命名为 docker-compose.yml。在该文件中,我们将定义 Nexus 服务的配置。
docker-compose.yml
version: "3.3"
services:
nexus:
image: sonatype/nexus3
container_name: nexus3
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- 8081:8081
volumes:
- ./data:/nexus-data
在上述配置中,我们使用了 Nexus 官方提供的 Docker 镜像 sonatype/nexus3,并将其命名为 nexus3。我们将容器内部的 8081 端口映射到宿主机的 8081 端口上,以便我们能够通过浏览器访问 Nexus 仓库。同时,我们还挂载了一个本地目录 ./data 到容器的 /nexus-data 目录,以保持 Nexus 的数据持久化。
保存并关闭 docker-compose.yml 文件后,执行以下命令启动 Nexus 服务:
docker-compose up -d
查看启动日志
docker-compose logs -f
如果启动报如下错,则是挂载目录文件夹权限问题,
_20230717202214.png
修改挂载文件夹权限即可
sudo chmod -R 777 data
修改完停止容器,在启动即可
docker-compose down
在启动即可
docker-compose up -d
访问地址:http://192.168.10.106:8081/
_20230717202813.png
点击 sign in 登录,使用管理员admin,密码在挂载目录下的admin.password,第一次登录需要修改密码
默认admin密码
_20230717203122.png
使用admin登录
_20230717203208.png
修改管理员密码
成功登录后,您可以开始配置 Nexus 仓库以满足您的需求,例如创建仓库、添加代理和主机等。您还可以设置访问控制、仓库策略和安全性设置,以确保您的仓库的安全性和可靠性
_20230717205135.png
查看依赖
_20230717205806.png
在 servers 标签中加入
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>xj2020</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>xj2020</password>
</server>
repositories标签中加入
<!-- 配置nexus远程仓库 -->
<repository>
<id>nexus</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.10.106:8081/repository/maven-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
springboot pom 中配置
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releases</name>
<url>http://192.168.10.106:8081/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id><!-- id 需要对应 settings 中的配置 id -->
<name>Nexus Snapshot</name>
<url>http://192.168.10.106:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
打包上传
忽略 test,clear --> package --> deploy
mvn clear --> mvn package -Dmaven.test.skip=true --> mvn deploy
使用 Docker Compose 部署 Nexus 仓库可以让您更轻松地搭建和管理仓库,提高开发团队的效率和项目的可维护性。通过上述步骤,您可以快速开始使用 Nexus 仓库,并享受其强大的功能。
希望本文能对您有所帮助!如有任何问题,请随时在下方留言,我将尽力解答。谢谢阅读!