【Docker Nexus3】maven 私库

1.部署环境

  • window 11 x64
  • Docker Desktop 4.34.1 (166053)
    • Docker Engine v27.2.0

1.1.Docker 镜像源

1.1.1.Docker Engine 配置

xml 复制代码
{
  "builder": {
    "features": {
      "buildkit": true
    },
    "gc": {
      "defaultKeepStorage": "32GB",
      "enabled": true
    }
  },
  "experimental": true, 
  "hosts": [
    "tcp://0.0.0.0:2375"
  ],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

2.拉取Nexus3镜像

shell 复制代码
# 拉取镜像
docker pull sonatype/nexus3
# 保存镜像源(选)
docker save -o sonatype_nexus3_latest sonatype/nexus3:latest

3.创建并运行Nexus3

shell 复制代码
# 创建运行镜像,设置最大内存
docker run -itd -p 18081:8081 -p 18082:8082 -p 18083:8083 --privileged=true --name nexus3 -v D:\docker\maven\nexus\data:/var/nexus-data -v D:\docker\maven\nexus\nexus-data:/nexus-data -e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx2048m -XX:MaxDirectMemorySize=2048m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" --restart=always docker.io/sonatype/nexus3

说明

  • 内存限制 -e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx2048m -XX:MaxDirectMemorySize=2048m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"
  • --privileged=true 允许容器使用管理员权限
  • --restart=always 自动重启

3.1.访问及查看密码

查看初始登录密码

shell 复制代码
docker exec -it nexus3 /bin/bash
cat /opt/sonatype/sonatype-work/nexus3/admin.password

修改登录默认密码

访问 http://127.0.0.1:18081/

3.2.创建存储


3.3.创建代理库



参考私库镜像

3.4.创建本地库


3.5.将创建的私库,添加到公共库中


4.配置 maven

可以访问公共库

settings.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <localRepository>D:\workspace\env\repository</localRepository>

  <pluginGroups></pluginGroups>
  <proxies></proxies>

    <servers>
        <server>
            <id>xxx-center</id>
            <username>admin</username>
            <password>xxxxxx</password>
        </server>
        <server>
            <id>xxx-center-snapshot</id>
            <username>admin</username>
            <password>xxxxxx</password>
        </server>
    </servers>

  <mirrors>
      <mirror>
          <id>maven-public</id>
          <mirrorOf>maven-public</mirrorOf>
          <name>maven-public</name>
          <url>http://xxx.xxx.xxx.xxx:18081/repository/maven-public/</url>
      </mirror>
  </mirrors>

  <profiles></profiles>
</settings>

5.配置pom.xml

发布配置

xml 复制代码
 <distributionManagement>
        <repository>
            <id>xxx-center</id>
            <name>xxx-center</name>
            <url>http://xxx.xxx.xxx.xxx:18081/repository/djb-center/</url>
        </repository>
        <snapshotRepository>
            <id>djb-center-snapshot</id>
            <name>djb-center-snapshot</name>
            <url>http://xxx.xxx.xxx.xxx:18081/repository/djb-center-snapshot/</url>
        </snapshotRepository>
    </distributionManagement>

拉取镜像配置

xml 复制代码
<repositories>
		<repository>
			<id>maven-public</id>
			<name>maven-public</name>
			<url>http://xxx.xxx.xxx.xxx:18081/repository/xxx-center/</url>
		</repository>
	</repositories>

也可以指定源配置(不推荐)

xml 复制代码
<repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun Repository</name>
            <url>https://maven.aliyun.com/repository/public</url>
            <snapshots>
				<enabled>false</enabled>
			</snapshots>
        </repository>
		<repository>
            <id>jeecg</id>
            <name>jeecg Repository</name>
            <url>https://maven.jeecg.org/nexus/content/repositories/jeecg</url>
            <snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>jeecg-snapshots</id>
			<name>jeecg-snapshots Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
</repositories>

6.打包与发布

shell 复制代码
# 打包
mvn -Dfile.encoding=UTF-8 -DskipTests=true clean package -P prod
# 发布
mvn -Dfile.encoding=UTF-8 -DskipTests=true clean deploy -P prod
相关推荐
尘浮生1 小时前
Java项目实战II基于Java+Spring Boot+MySQL的服装厂服装生产管理系统的设计与实现
java·开发语言·spring boot·后端·mysql·maven·intellij-idea
Just_Paranoid2 小时前
828华为云征文|部署在线文件管理器 Spacedrive
docker·华为云·文件管理·flexus云服务器·spacedrive
大白菜和MySQL2 小时前
rockylinux9.4单master节点k8s1.28集群部署
云原生·容器·kubernetes
玖石书2 小时前
Docker 容器网络技术
运维·docker·容器
向往风的男子2 小时前
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十)
学习·容器·kubernetes
赵广陆4 小时前
SprinBoot+Vue门诊管理系统的设计与实现
前端·javascript·vue.js·spring boot·maven
爱吃番茄的小狐狸8 小时前
Docker镜像下载-使用github action- 解决无法下载docker镜像的问题
docker·容器·github
二十雨辰8 小时前
[Java]maven从入门到进阶
java·开发语言·maven
andy7_9 小时前
运行在docker环境下的图片压缩小工具
运维·docker·容器
bestcxx9 小时前
(十六)、把镜像推送到私有化 Docker 仓库
docker