docker|docker搭建nexus|maven私服
前提环境
一台安装了Docker服务器
部署nexus
- 拉取镜像
docker pull sonatype/nexus3
- 创建数据持久化目录
# 创建目录,你可以根据需要修改路径,如 /opt/nexus-data
mkdir -p /opt/nexus-data
# 关键步骤:Nexus容器内进程以UID 200运行,必须给予该目录相应权限
chown -R 200:200 /opt/nexus-data
- 启动 Nexus 容器
8082 外部访问端口,8081 内部应用端口
docker run -d \
--name nexus \
-p 8082:8081 \
-v /opt/nexus-data:/nexus-data \
--restart=always \
sonatype/nexus3
- 参数说明:
-d:后台运行容器
--name nexus:为容器命名为 nexus
-p 8081:8081:将宿主机的8081端口映射到容器的8081端口(Nexus的Web端口)
-v /opt/nexus-data:/nexus-data:挂载数据卷,实现数据持久化
--restart=always:设置容器在退出或Docker重启时自动启动
Nexus初始化配置
- 获取初始管理员密码,如下文件进行修改
cat /opt/nexus-data/admin.password
客户端Maven项目配置
- ~/.m2/settings.xml
<settings>
<!-- 配置访问私服的用户名和密码,ID需与后面pom.xml中的ID一致 -->
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>你在Nexus中设置的新密码</password>
</server>
</servers>
<!-- 配置镜像,将所有Maven请求都指向你的私服 -->
<mirrors>
<mirror>
<id>nexus-mirror</id>
<name>Nexus Mirror</name>
<!-- 注意将 YOUR_IP 替换为你的服务器IP -->
<url>http://YOUR_IP:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf> <!-- 表示拦截所有仓库请求 -->
</mirror>
</mirrors>
</settings>
配置项目部署地址(pom.xml)
<project>
...
<distributionManagement>
<!-- 正式版(Releases)仓库 -->
<repository>
<id>nexus</id> <!-- 此ID需与settings.xml中server的id一致 -->
<name>Releases</name>
<url>http://YOUR_IP:8081/repository/maven-releases/</url>
</repository>
<!-- 快照版(Snapshots)仓库 -->
<snapshotRepository>
<id>nexus</id>
<name>Snapshots</name>
<url>http://YOUR_IP:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>
演示

