【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
相关推荐
Karoku0662 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
Bright16687 小时前
centos9安装k8s集群
云原生·容器·kubernetes
!!!5259 小时前
华为云镜像加速器
docker·容器·华为云
计算机毕设定制辅导-无忧学长9 小时前
Maven 基础环境搭建与配置(一)
java·maven
xidianjiapei00110 小时前
Kubernetes的Ingress 资源是什么?
云原生·容器·kubernetes
sszdzq11 小时前
Docker
运维·docker·容器
dmy12 小时前
docker 快速构建开发环境
后端·docker·容器
计算机毕设指导613 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven
土豆沒加13 小时前
K8S的Dashboard登录及验证
云原生·容器·kubernetes
终端行者14 小时前
kubernetes1.28部署mysql5.7主从同步,使用Nfs制作持久卷存储,适用于centos7/9操作系统,
数据库·容器·kubernetes