10.使用nexus3配置golang私有倉庫


1,前言說明

golang是近來非常火熱的語言,但是處理其依賴包一直都是一個讓人頭疼的問題,尤其是在國內,開發者需要下載一些官方的包的時候,就會非常苦惱。盡管已經有了私服 Athens,公司也已經搭建了這個私服,但是小伙伴們使用下來,反饋仍舊不好,大多時候下載官方的包時還是要自己本地開小飛機進行下載。

今天就打算借助於nexus優秀且強大的代理能力,來解決一下這個痛點。

在nexus官方文檔配置go代理的文章里,有如下一個拓撲說明了nexus當中go私服的用法:

這張圖的意思很明了,也就是nexus私服的建立,同樣需要依賴於 Athens,因為在對一些本地包下載的問題上,顯然Athens解決的更好一些。於是乎,在目前nexus最新的版本(3.24)中我們看到,其也僅僅支持proxygroup兩種類型,group是統一對外提供訪問的,不必過多介紹,那么本篇文章,也就將是重點圍繞着proxy類型的代理展開來講的。

目前來看,縱然是nexus官方文檔,谷歌百度,也沒有比較完備的文檔針對nexus當中配置golang項目私服的文章,我這里也算是結合之前配置其他代理的一些經驗,分享一下自己配置整理的思路。至少目前公司小伙伴用起來,都是非常開心滿意的,被這種簡約高速的代理方式,紛紛贊不絕口的。

配置過程中,將添加三個proxy類型的,其中一個是套娃形式的,接下來一一介紹。

2,創建blob存儲

為其創建一個單獨的存儲空間。

3,阿里代理

首先將國內的阿里倉庫添加進來,再一次口頭表揚阿里,這造福廣大開發者的舉措。添加的方式非常簡單,與其他項目的代理添加方式一致:

其他的均是默認。

整體配置截圖如下:

4,官方代理

一個全球代理為 Go 模塊而生,添加的方式非常簡單,與其他項目的代理添加方式一致:

  • Name: proxy-go-gf
  • Proxy
  • Storage: go-hub。

其他的均是默認。

整體配置截圖如下:

5,創建group類型的go倉庫

  • Name:group-go
  • Storage:選擇專用的blob存儲go-hub。
  • group : 將左邊可選的4個倉庫,添加到右邊的members下。

整體配置截圖如下:

6,簡單驗證

沒有使用私服之前,里邊是空空如也。

通過設置GOPROXY將代理指向私服地址,然后進行項目的編譯,可以看到對應的依賴的包已經緩存到私服當中了。

通過查看go版本,采用下面的方式設置

[root@worker ~]# go version
go version go1.13.11 linux/amd64

如果您使用的 Go 版本是 1.12 及以下

# 啟用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 環境變量
export GOPROXY=http://192.168.75.11:8081/repository/group-go/

如果您使用的 Go 版本是 1.13 及以上,采用這個進行配置

go env -w GO111MODULE=on
go env -w GOPROXY=http://192.168.75.11:8081/repository/group-go/

使用go安裝模塊

[root@worker ~]# go get -u golang.org/x/sys
go: finding golang.org/x/sys latest
go: downloading golang.org/x/sys v0.0.0-20200610111108-226ff32320da
go: extracting golang.org/x/sys v0.0.0-20200610111108-226ff32320da

參考文章:http://www.eryajf.net/4941.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM