日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 Nexus3镜像搭设私有仓库(Bower 、Docker、Maven、npm、NuGet、Yum、PyPI)

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Nexus3镜像搭设私有仓库(Bower 、Docker、Maven、npm、NuGet、Yum、PyPI) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • Docker - 使用 Nexus3 搭設私有 NuGet 倉庫

    • Nexus 默認帳號

    • Repositories

    • 上傳組件包(Package)

    • Repositories 說明

    • 準備 Package

    • 上傳 Package

    • 使用 Package

    • 拉取 Nexus 鏡像

    • 運行 Nexus

    • NuGet

    • Nexus 私有倉庫

    • 前言

    • 說明

    • 安裝

    • Nexus NuGet 倉庫簡單使用

    • 總結


前言

NuGet

 Nuget 是免費、開源的包管理工具,專注于在?.Net、.Net Core?平臺應用開發過程中第三方組件庫的管理,相對于傳統單純的 dll 引用要方便、科學得多。?
 其中?nuget.org?是最著名的 NuGet 公開庫,但是企業內部開發的(業務)公共組件因為私密性或商業機密不能上傳到公共庫中,所以企業內部需要搭建一個私有的 NuGet 倉庫【私服】來支持。雖然微軟有提供的 NugetServer,但 NugetServer 用起來并不那么方便。?
 而且企業有可能不止使用?C#?一種語言,可能其他的語言組件也需要管理,比如:Java、Docker 鏡像?等,NugetServer 就捉襟見肘,本文我給大家帶來一款全能型的私服軟件?Nexus。

Nexus 私有倉庫

Nexus 是一個強大的工具倉庫管理器,它極大地簡化了本地內部倉庫的維護和外部倉庫的訪問。?
Nexus 支持管理 Bower 、Docker、Maven、npm、NuGet、Yum、PyPI 等工具包。最新版本的?Nexus3.x?全面支持 Docker 的私有鏡像存儲。

Nexus 官網:www.sonatype.com

說明

本文主要介紹怎么在?Linux?(CentOS) 系統上使用?Docker?來部署 Nexus ,本文使用的是?Nexus v3.15.3?版本進行操作的。?
為什么使用 Docker 來部署 Nexus,是因為作者公司現在的基礎設施為了方便維護全部使用 Docker 來部署。如果你不想使用 Dokcer 或者不想在 Linux 部署請前往官方網站下載對應安裝包。

注意:本文是在 CentOS 系統下進行操作的。

安裝

下面介紹的安裝步驟是作者在 Linux 系統已經安裝了 Docker 為前提條件。

拉取 Nexus 鏡像

從?Docker Hub?拉取 Nexus 的鏡像到本地,我這里拉取是最新版本的。你也可以拉取相對應版本的鏡像。

  • $ docker pull sonatype/nexus3:latest

  • latest: Pulling from sonatype/nexus3

  • a02a4930cb5d: Pull complete

  • 2c6aa0f814dc: Pull complete

  • ce7b7501fc94: Pull complete

  • Digest: sha256:00ede0830e375c8a9758ea5d98dd020425850bbeccc822da68e7bad7ae92dbfa

  • Status: Downloaded newer image for sonatype/nexus3:latest

  • 鏡像詳細說明:https://hub.docker.com/r/sonatype/nexus3

    運行 Nexus

    在運行之前先創建一個目錄用來存放 Nexus 持久化數據。

  • $ mkdir -p /data/nexus

  • 使用 Docker 命令運行 Nexus 。

  • $ docker run -d -p 8081:8081 --name nexus -v /data/nexus:/nexus-data sonatype/nexus3:latest

  • c90c62f4bd5d3f09d3f0d562e5fe41401954898729ed9f7407ed71296f372883

  • Docker 返回容器的的 Hash ID,代表容器已經啟動,通過?http://serverip:8081?就能訪問Nexus了。

    但是請求的時候拒絕我的請求,這個地方困擾了我很久。我第一步先排除是否是防火墻的問題。

  • $ firewall-cmd --state

  • not running

  • 使用命令查看防火墻沒有運行,第二步查看容器當前狀態。

  • $ docker container ls -a

  • CONTAINER ID IMAGE COMMAND CREATED STATUS

  • c90c62f4bd5d sonatype/nexus3:latest "sh -c ${SONATYPE_DI…" 27 minutes ago Exited

  • 發現這個容器的狀態變成?Exited?已經退出,找到問題所在可能是什么原因導致 nexus 沒有啟動起來。現在使用容器日志查一下掛掉的原因。

  • $ docker container logs c90c

  • mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied

  • mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied

  • OpenJDK 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory


  • Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log

  • Warning: Forcing option -XX:LogFile=/tmp/jvm.log

  • Unable to update instance pid: Unable to create directory /nexus-data/instances

  • /nexus-data/log/karaf.log (No such file or directory)

  • Unable to update instance pid: Unable to create directory /nexus-data/instances

  • 從日志發現是因為 Nexus 在創建文件夾的時候沒有權限。這個應該是上面在創建文件夾的時候沒有分配權限導致的。下面我們給這個?/data/nexus?文件夾分配權限。

  • $ chown -R 200 /data/nexus

  • $ docker container start c90c62f4bd5d

  • c90c62f4bd5d

  • 重新啟動容器后,再次訪問一下 Nexus,下圖顯示可以打開 Nexus 。?
    我們現在發現 Nexus 可以支持很多倉庫格式。我們現在已經安裝完成了,下面我們來講怎么簡單使用 Nexus。

    Nexus NuGet 倉庫簡單使用

    下面將只會介紹一下怎么使用?NuGet?,至于使用 Nexus 其他倉庫請前往官方查看詳情文檔。

    Nexus 默認帳號

    Nexus 的默認管理員賬號?admin,密碼?admin123?。可以在 Nexus 管理界面右上角 Signin 按鈕可以登錄Nexus。登錄完成之后可以點擊下面圖片齒輪圖標,進行管理 Nexus 。?

    Repositories

    點擊右菜單的?Repositories?按鈕可以看到 Nexus 內置的默認倉庫:?

    Repositories 說明

    Nexus 默認已經創建好了 Nuget 以及其他的倉庫,并且是創建了3個不同類型的倉庫:nuget-group、nuget-hosted、nuget.org-proxy。

    nuget.org-proxy:類型是 proxy,表示代理倉庫。我們向它請求包(package)的時候,如果本地有,它就從本地提供,如果本地沒有,它會從?nuget.org?下載到本地,然后給我提供這個包。

    nuget-hosted:類型是 hosted,表示托管倉庫。我們一般把自己開發的包上傳到該倉庫中。

    nuget-group:類型是 group,表示倉庫組,它結合了 nuget.org-proxy 和 nuget-hosted ,能對外提供上述兩者中的包。

    小結:?
    nuget-hosted?負責包上傳,nuget.org-proxy?負責代理從?nuget.org?下載包到 Nexus 緩存中,nuget-group?負責提供包。一般使用?nuget-group?提供的 URL 就可以了,它可以把私服和公共庫進行合并。

    上傳組件包(Package)

    準備 Package

  • 先使用?Visual Studio?創建一個?類庫項目?命名為?NexusTest?。

  • 在?解決方案資源管理器?選中 NexusTest 項目右擊點擊屬性。進入項目設置頁選擇?打包?選項卡。勾選?在版本中勝出NuGet包?。

  • 在?解決方案資源管理器?選中 NexusTest 項目右擊點擊?生成。生成成功之后在本項目的?bin\Debug?目錄下找到?NexusTest.1.0.0.nupkg?Nuget 文件,代表 Package 已經準備完成。

  • 上傳 Package

  • 添加?Nuget Realms,因為 Nexus 認證 Nuget 是通過?Realms?來認證,因此要添加 Nuget Realms。

  • 在?Upload?選中?nuget-hosted?點擊進入,為什么要選中 nuget-hosted 上面已經說明。

  • 把上面準備好的?NexusTest.1.0.0.nupkg?Nuget 文件上傳到 Nexus。

  • 第三步上傳成功,在?Browse?選中?nuget-hosted?點擊進入。可以查看到已經上傳成功。

  • 使用 Package

  • 獲取 Nuget 程序包源地址,在 Nexus 的 Browse 找到?nuget-group?獲取到地址。

  • 在?Visual Studio?的?Nuget 管理器,點擊齒輪進行設置 Nexus 地址。

  • 添加 Nexus 私有 Nuget 倉庫地址。

  • 通過?Nuget 管理器?查詢一下剛剛我們上傳的?NexusTest?包。


  • 總結

    Nexus 基本可以滿足企業的私服需求,而且還有一個可視化工具進行管理,降低企業管理成本。

    引用:

    Nexus 鏡像詳細說明:https://hub.docker.com/r/sonatype/nexus3/?
    使用 Nexus 搭建私有 Nuget 倉庫:http://www.cnblogs.com/Erik_Xu/p/9211471.html?
    Linux的權限:https://www.cnblogs.com/lhm166/articles/6605059.html?
    關閉防火墻:https://blog.csdn.net/ytangdigl/article/details/79796961

    轉載是一種動力 分享是一種美德

    如果喜歡作者的文章,請關注“magiccodes”訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


    QQ群:

    編程交流群<85318032>?

    產品交流群<897857351>


    長沙線下技術社區已經創建,有興趣者可以通過客服加群。接下來,我們會定期組織一些線下技術交流分享會,以饗大家。



    原文鏈接:

    https://www.cnblogs.com/lfzm/p/10606524.html

    總結

    以上是生活随笔為你收集整理的使用 Nexus3镜像搭设私有仓库(Bower 、Docker、Maven、npm、NuGet、Yum、PyPI)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。