当前位置: 首页 > news >正文

基于 Nexus 在 Dockerfile 配置 yum, conda, pip 仓库的方法和参考

在 Nexus 配置代理仓库的方法,可参考 pypi 的配置博客:https://hellogitlab.com/CI/docker/create_your_nexus_2

更多代理格式,参考官方文档,如 pypi:https://help.sonatype.com/en/pypi-repositories.html

配置 yum 仓库

  1. Dockerfile 参考

    CentOS 8 镜像

    RUN mkdir -p /etc/yum.repos.d/backup && \ # 备份原本的 Yum 仓库mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null || true && \# 添加Nexus仓库echo -e '[nexus]\n\
    name=Nexus Repository\n\
    baseurl=http://xx.xx.xx.xx:xxxx/repository/centos-group/8-stream/AppStream/x86_64/os\n\
    enabled=1\n\
    gpgcheck=0' > /etc/yum.repos.d/nexus.repo && \# 添加BaseOS仓库(包含基础依赖)echo -e '[baseos]\n\
    name=CentOS Stream 8 - BaseOS\n\
    baseurl=http://xx.xx.xx.xx:xxxx/repository/centos-group/8-stream/BaseOS/x86_64/os\n\
    enabled=1\n\
    gpgcheck=0' > /etc/yum.repos.d/baseos.repo && \yum clean all && \yum makecache && \yum repolist
    
  2. baseurl 配置的路径要一直深入到有 repodata/repomd.xml 文件的父目录,比如参考中的 http://xx.xx.xx.xx:xxxx/repository/centos-group/8-stream/AppStream/x86_64/os 的目录下才有 repodata

    请添加图片描述

  3. 此时如果你也要在 Dockerfile 里安装 OpenCV-python 的依赖 mesa-libGL,参考如下

    # opencv 依赖包
    RUN yum install -y mesa-libGL && yum clean all
    

配置 conda 仓库

  1. 在 Browse 里搜索 conda 并复制相应的 URL

    此处代理的是清华源

  2. 备份或删除之前的 conda 配置,通常是用户目录下的.condarc
    比如 mv 成.condarc.bak,因为用户目录下的配置优先级最高。
    root 用户的参考命令:mv /root/.condarc /root/.condarc.bak

  3. 配置通道(也就是源仓库地址)。add 的时候可能会隐式的添加 default 通道,其为 Anaconda 多个官方仓库的统一别名,需要删除 default 通道,避免版权问题。

    conda config --add channels http://xx.xx.xx.xx:xxxx/repository/conda-proxy/main
    conda config --add channels http://xx.xx.xx.xx:xxxx/repository/conda-cloud/conda-forge
    conda config --remove channels defaults
    
  4. 此时可以下载代码库了,比如 numpy
    conda install numpy

  5. PS:如果是用 Miniforge 替换过 Anaconda 则还需要备份或删除 Miniforge 安装目录下的.condarc,和步骤 1 同理

  6. 因为背后配置的是清华源的两个 URL
    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud 对应 conda-cloud
    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs 对应 conda-proxy

    所以其对应有的仓库路径,都可以 add,比如
    conda config --add channels http://xx.xx.xx.xx:xxxx/repository/conda-cloud/pytorch

配置 pip 仓库

  1. 访问 Nexus 的管理界面

    1. 在 Browse 里搜索 pypi 并复制相应的 URL

      比如 http://xx.xx.xx.xx:xxxx/repository/pypi-aliyun

    2. 给 URL 添加上 simple 目录,并配置信任主机。

      注意,如果 Nexus 代理的是 NVIDIA 的 pypi 仓库,https://pypi.nvidia.com,则不用再添加 simple 端点,因为其不遵循该习惯

      pip config set global.index-url http://xx.xx.xx.xx:xxxx/repository/pypi-aliyun/simple
      pip config set install.trusted-host xx.xx.xx.xx
      
  2. 直接修改默认的激活的配置文件的命令

    参考如下

    pip config edit --editor vim

  3. 如果配置未生效,可能是还有其他的 pip 配置文件覆盖的情况

    1. 输入 pip config list -v 查看意料外的配置文件路径。笔者遇到过 NVIDIA 自动生成的 pip 仓库配置,优先级很高,删除即可
http://www.xdnf.cn/news/405307.html

相关文章:

  • T2000云腾边缘计算盒子在数猪场景中的应用|YOLOv8+NodeRED
  • 湖北理元理律师事务所:企业债务危机的“止血”与“造血”平衡术
  • 01背包和完全背包
  • 基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器——MuPDF Tools
  • 大项目k8s集群有多大规模,多少节点,有多少pod
  • 智能指针入门:深入理解 C++ 的 shared_ptr
  • AI中的MCP是什么?MCP的作用及未来方向预测 (使用go-zero 快速搭建MCP服务器)
  • 2025年北京市积分落户申报
  • 经典案例 | 智能眼镜中瞳距调节和近视调节的应用
  • web 自动化之 Unittest 四大组件
  • 【NextPilot日志移植】ULog
  • 文档外发安全:企业数据防护的最后一道防线
  • RabbitMQ 工作模式
  • JWT的介绍与在Fastapi框架中的应用
  • 单片机-STM32部分:13-1、蜂鸣器
  • 常用依赖文件库
  • kubernetes服务自动伸缩-VPA
  • ESP32开发入门(九):HTTP服务器开发实践
  • Day22打卡-复习
  • 【K8S学习之探针】详细了解就绪探针 readinessProbe 和存活探针 livenessProbe 的配置
  • Kotlin 异步初始化值
  • JVM类加载
  • 生产环境怎么移除console
  • WebSocket集成方案对比
  • 中华春节符号全球推广委员会——“金文形意书《易经》成果展”研学之旅
  • 【Spark】使用Spark集群搭建Yarn模式
  • Docker-配置私有仓库(Harbor)
  • mapreduce-wordcount程序2
  • PostgreSQL 中的序列(Sequence)
  • 力扣HOT100之二叉树:226. 翻转二叉树