【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
相关推荐
喜欢你,还有大家3 小时前
Docker-仓库-镜像制作
运维·docker·容器
武子康5 小时前
Java-166 Neo4j 安装与最小闭环 | 10 分钟跑通 + 远程访问 Docker neo4j.conf
java·数据库·sql·docker·系统架构·nosql·neo4j
测试老哥5 小时前
Jmeter+Maven+jenkins+eclipse 搭建自动化测试平台
自动化测试·软件测试·测试工具·jmeter·jenkins·maven·性能测试
计算机小手8 小时前
使用 llama.cpp 在本地高效运行大语言模型,支持 Docker 一键启动,兼容CPU与GPU
人工智能·经验分享·docker·语言模型·开源软件
岚天start9 小时前
KubeSphere在线安装单节点K8S集群
docker·容器·kubernetes·k8s·kubesphere·kubekey
xyhshen9 小时前
记录一次K8S跨命名空间访问 xxx.xxx.svc.cluster.local 类似内部服务不通的问题
云原生·容器·kubernetes
栗子~~9 小时前
shell-基于k8s/docker管理容器、监控模型训练所消耗的最大CPU与最大内存脚本
docker·容器·kubernetes
海鸥819 小时前
在k8s中部署seaweedfs,上传文件到seaweedfs方法
云原生·容器·kubernetes
半梦半醒*9 小时前
k8s——pod详解2
linux·运维·docker·容器·kubernetes·负载均衡
AAA小肥杨9 小时前
K8s从Docker到Containerd的迁移全流程实践
docker·容器·kubernetes