【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
相关推荐
Archie_IT1 小时前
openEuler 软件生态深度勘探:从六万软件包到多语言融合
linux·容器·性能测试·openeuler·多语言开发
❀͜͡傀儡师2 小时前
K8s 部署Doris 高可用集群
云原生·容器·kubernetes
月亮!2 小时前
移动端测试重磅升级:跨平台自动化测试框架深度对比
运维·网络·人工智能·测试工具·容器·自动化·测试用例
凯子坚持 c3 小时前
Docker 容器全生命周期管理与运维命令深度解析
运维·docker·php
java_logo3 小时前
MILVUS Docker 容器化部署指南
运维·人工智能·docker·容器·prometheus·milvus
箬敏伊儿4 小时前
Apple M2 + Docker + MySQL 轻量配置全教程
数据库·mysql·docker
源代码•宸4 小时前
分布式缓存-GO(项目整体架构简介、Ubuntu 22.04 64位安装GoLang、安装Docker、解决Go module 的依赖问题)
经验分享·分布式·后端·ubuntu·缓存·docker·golang
杀死那个蝈坦6 小时前
Docker
java·docker·eclipse·tomcat·hibernate
wadesir7 小时前
Debian容器存储管理(Docker中实现数据持久化的完整指南)
运维·docker·debian
忍冬行者7 小时前
基于docker安装jenkins+gitlab+harbor
docker·gitlab·jenkins