在 Nexus 配置代理倉庫的方法,可參考 pypi 的配置博客:https://hellogitlab.com/CI/docker/create_your_nexus_2
更多代理格式,參考官方文檔,如 pypi:https://help.sonatype.com/en/pypi-repositories.html
配置 yum 倉庫
-
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
-
baseurl
配置的路徑要一直深入到有repodata/repomd.xml
文件的父目錄,比如參考中的http://xx.xx.xx.xx:xxxx/repository/centos-group/8-stream/AppStream/x86_64/os
的目錄下才有repodata
-
此時如果你也要在 Dockerfile 里安裝 OpenCV-python 的依賴
mesa-libGL
,參考如下# opencv 依賴包 RUN yum install -y mesa-libGL && yum clean all
配置 conda 倉庫
-
在 Browse 里搜索 conda 并復制相應的 URL
此處代理的是清華源
-
備份或刪除之前的 conda 配置,通常是用戶目錄下的.condarc
比如 mv 成.condarc.bak,因為用戶目錄下的配置優先級最高。
root 用戶的參考命令:mv /root/.condarc /root/.condarc.bak
-
配置通道(也就是源倉庫地址)。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
-
此時可以下載代碼庫了,比如 numpy
conda install numpy
-
PS:如果是用 Miniforge 替換過 Anaconda 則還需要備份或刪除 Miniforge 安裝目錄下的.condarc,和步驟 1 同理
-
因為背后配置的是清華源的兩個 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 倉庫
-
訪問 Nexus 的管理界面
-
在 Browse 里搜索 pypi 并復制相應的 URL
比如
http://xx.xx.xx.xx:xxxx/repository/pypi-aliyun
-
給 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
-
-
直接修改默認的激活的配置文件的命令
參考如下
pip config edit --editor vim
-
如果配置未生效,可能是還有其他的 pip 配置文件覆蓋的情況
- 輸入
pip config list -v
查看意料外的配置文件路徑。筆者遇到過 NVIDIA 自動生成的 pip 倉庫配置,優先級很高,刪除即可
- 輸入