首頁 >運維 >Docker >如何調試docker中的原始碼?

如何調試docker中的原始碼?

coldplay.xixi
coldplay.xixi原創
2020-06-12 13:00:563339瀏覽

如何調試docker中的原始碼?

如何偵錯docker中的原始程式碼?

調試docker中原始程式碼的方法:

經過研究docker的官方編譯腳步,發現本地編譯也很簡單,只需要在docker原始碼的目錄下執行以下指令即可:

./hack/make.sh binary

上面這條指令就只會產生docker的二進位文件,不過肯定不會這麼順利的,執行這個指令你就會發現錯誤。如果第一次執行報的錯誤應該是找不到對應的go依賴包。那現在就開始解決第一個問題,go依賴套件。

解決go依賴包最直接的方法就一個一個去github或其他地方去下載到本地,但是這樣做很麻煩,docker依賴的go語言包很多,然後依賴包可能又依賴其他包。這裡有一個簡單實用的辦法,也是go語言管理專案的方便之處。透過go get指令來自動下載,例如發現報錯的是docker某一個目錄下的依賴包,那麼可以如下執行:

go get -v ./src/github.com/docker/docker/...

這條指令執行以後整個docker目錄下原始檔依賴的套件都會被自動下載。如果發現其他目錄下原始檔也報同樣的錯誤,可以用次方法解決。不過這裡要強調一點, 這些下載都是會下載最新的包,如果編譯老的docker肯定會出問題 ,如果編譯最新的docker程式碼肯定不會有問題,因為官方的編譯是這種方式。

上面執行的指令都是建立在go語言環境建立成功的基礎上,我安裝的go遇到是1.3.3版本的,採用源碼方式安裝。安裝在/export/servers/go下面,然後所有的go語言工程原始碼目錄放在 /export/servers/gopath。然後配置環境變數在使用者的根目錄下的.bashrc檔案裡面如下:

export GOPATH=/export/servers/gopath
export GOROOT=/export/servers/go
export GOARCH=amd64
export GOOS=linux


推薦教學:《docker影片教學

以上是如何調試docker中的原始碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn