闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

  • linux

  • docker

  • redis

  • nginx

  • mysql

  • 其他

  • 环境搭建

    • JDK安装
    • stable-diffusion-webui 安装
    • Roop安装使用
    • nexus部署和使用
      • 部署
        • docker-compose部署
        • 使用HTTPS代理
      • maven中使用
        • 仓库类型
        • 配置maven setting
        • 配置 pom
      • 作为docker仓库
        • 示例: 推送 nexus3 到私有仓库
        • 如果没有证书
    • Maven配置示例
    • Conda使用
    • Caddy操作指南
    • Alist使用
  • 知识库
  • 环境搭建
YAN
2024-06-03
目录

nexus部署和使用

使用nexus搭建maven私服

# 部署

# docker-compose部署

version: "2"

services:
  nexus:
    image: sonatype/nexus3
    volumes:
      - ./data:/nexus-data
    ports:
      - "8081:8081"

注意

初次使用,查看密码cat ./data/admin.password

# 使用HTTPS代理

nginx

version: "2"
services:
  nginx:
    restart: "no"
    container_name: nginx
    image: nginx:stable-perl
    ports:
      - "35443:443"
    volumes:
      - ./conf:/etc/nginx/conf.d/
      - ./ssl:/ssl
    networks:
      - nexus_default

networks:
  nexus_default: #使用nexus的网络 ,可通过 docker network ls 查看
    external: true

配置文件

需要自行申请对应域名证书

点击查看
server {
     listen 443 ssl;
     #绑定证书的域名
     server_name nexus.domain.com;

     root html;
     index index.html index.htm;
     #证书文件名称
     ssl_certificate /ssl/ssl.pem;
     #私钥文件名称
     ssl_certificate_key /ssl/ssl.key;
     ssl_session_timeout 5m;
     #使用此加密套件。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     #使用该协议进行配置。
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;

     client_max_body_size 200M;
     client_body_buffer_size 128k;


    # 代理nexus仓库
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://nexus:8081/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

# maven中使用

# 仓库类型

  • proxy 代理仓库
  • hosted 宿主仓库
    • releases 发行版
    • snapshots 快照版
  • group 仓库组,主要用于下载依赖时遍历

# 配置maven setting

<settings>

  <mirrors>
    <!-- 用于拉取-->
    <mirror>
      <!-- 和 server.id 一致-->
      <id>priveat-repo</id>
      <mirrorOf>*</mirrorOf>
      <url>https://nexus.domain.com:35443/repository/maven-public/</url>
    </mirror>

  </mirrors>

  <servers>

    <server>
      <id>priveat-repo</id>
      <username>admin</username>
      <password>1234567</password>
    </server>

  </servers>

</settings>

# 配置 pom

    <!-- (用于推送)-->
	<distributionManagement>
        <!-- 发行 -->
		<repository>
			<id>haveways</id>
			<url>https://nexus.domain.com:35443/repository/maven-releases/</url>
		</repository>

        <!-- 快照 -->
		<snapshotRepository>
			<id>haveways</id>
			<url>https://nexus.domain.com:35443/repository/maven-snapshots/</url>
		</snapshotRepository>

	</distributionManagement>

# 作为docker仓库

新建docker(hosted)

img_1.png

激活docker登录令牌 img_1.png

点击查看
server {
     listen 443 ssl;
     #绑定证书的域名
     server_name docker.domain.com;

     root html;
     index index.html index.htm;
     #证书文件名称
     ssl_certificate /ssl/ssl.pem;
     #私钥文件名称
     ssl_certificate_key /ssl/ssl.key;
     ssl_session_timeout 5m;
     #使用此加密套件。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     #使用该协议进行配置。
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;


     client_max_body_size 2G;        # 允许最大请求体为 2GB
     client_body_buffer_size 2M;     # 内存缓冲区大小(单次读取请求体的内存块)
     client_body_timeout 300s;       # 请求体传输超时时间(300 秒)


·   # 代理docker仓库 注意代理端口
    location / {
        proxy_request_buffering off;
        proxy_http_version 1.1;         # 强制使用 HTTP/1.1 协议
        proxy_set_header Connection ""; # 清除 Connection 头,启用持久连接

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme; //标记HTTPS

        proxy_pass http://nexus:35444/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

# 示例: 推送 nexus3 到私有仓库

需要修改成您的域名或者IP,且是https

登录

docker login -u admin docker.domain.com:35443

修改tag

docker sonatype/nexus3  docker.domain.com:35443/nexus3:1.0

推送到私有仓库

docker push  docker.domain.com:35443/nexus3:1.0

从私有仓库获取

docker pull  docker.domain.com:35443/nexus3:1.0

# 如果没有证书

修改文件 vi /etc/docker/daemon.json

允许 Docker 守护进程与未使用有效 HTTPS 证书或明文 HTTP 的私有镜像仓库通信

{

    "insecure-registries": ["docker.nexus.com:35444"], 
}

重启

systemctl restart docker

检查是否生效

docker info | grep Insecure
上次更新: 2025/05/14, 01:34:05
Roop安装使用
Maven配置示例

← Roop安装使用 Maven配置示例→

最近更新
01
Caddy操作指南
04-25
02
Swap空间
04-22
03
Alist使用
04-21
更多文章>
Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式