docker源碼閱讀筆記-github配置及代碼提交操作

   這片博文屬於Github操作經驗及技巧的記錄,通過向github提交docker源碼的研究紀錄一點github操作的技巧和經驗,這對以後對個人github上代碼的管理和提交也很有幫助,適用於一些github初學者,做一些簡單的代碼管理。(通過這段時間博文的不斷更新,本小博主發現越來越喜歡更新博文了,雖然這樣會拖慢學習進度,但實際上從長遠看來,對於個人的學習倉庫的建立還是很有幫助的,而從短時間來看,將博文和研究學習結合在一起,非常有助於整理思路和積累技巧,當我在研究過程中需要使用工具,或者有一點自己的整體框架上的思考,博文的紀錄會給我一種非常安心的感覺,就像這些學習到的知識確確實實的被我佔有了一樣,好了,廢話不多說,先完成這篇博文的編寫吧)

      我先從整體上整理一下我這篇博文需要紀錄的操作過程:

      1.安裝好所需要的軟件及工具

      2.爲提交代碼配置git工具

      3.提交代碼所需的一些常用git命令操作

      4.與docker相關的操作,刪除容器,啓動容器,修改源碼,運行測試用例(單元測試,集成測試等)

  

   一.安裝所需的軟件及工具

       (1)註冊一個github賬號。這裏自行註冊

       (2)安裝git命令,sudo apt-get install git

         (3)   安裝make命令,sudo apt-get install make

       (4)安裝或升級Docker,Docker的安裝自行去Docker官網上去一步步安裝,我的安裝過程如下:


  二. 爲提交代碼配置git工具

         (1)爲Docker源碼在github上創建分支(fork)並將源碼下載(clone)到本地

                  創建分支:首先打開瀏覽器登錄github帳號,然後進入docker/docker倉庫進入如下頁面,點擊一下Fork按鈕:

                             

               之後在你的github賬戶下就有一個docker的分支目錄YourAccount/docker  ,即docker源碼,隨後複製該fork分支的clone Url如下

                   


        再通過如下命令行順序將docker源碼copy到本地來:

        cd ~

        mkdir repos

        cd repos

        git clone +(你之前複製的分支Url)

        cd docker-fork

      恭喜你成功進入docker_fork源碼目錄了~

    (2)設置你的git簽名信息用於遠程提交代碼

         當你想要修改你的分支中的源碼的時候,你希望能和其他人在docker/docker這個倉庫中所作的修改和變動同步,爲了使得同步更簡單,你也會添加一個遠程命令upstream指向docker/docker ,由於Docker不接受任何匿名的代碼提交,所以我們需要配置名稱和郵箱等個人信息。

         cd docker-fork

         git config --local user.name "FirstName LastName "

         git config --local user.email "[email protected]"

         git remote add upstream https://github.com/docker/docker.git   //設置本地倉庫跟蹤源碼主線的改動

       檢查設置完畢的信息:

        



       (3)創建分支並將這個分支提交

                cd  docker-fork

                git checkout -b dry-run-test  //創建一個目錄並進入到這個目錄

                git branch  //驗證你是否在這個分支裏面

                    *dry-run-test //*表示正在該目錄分支下

                     master

                 touch TEST.md //在該分支創建一個文件,然後在這個文件通過vim工具隨便寫點內容,然後保存退出

                 git status //檢查分支狀態如下圖

                     On branch dry-run-test

          Untracked files:

            (use "git add <file>..." to include in what will be committed)

            TEST.md

         nothing added to commit but untracked files present (use "git add" to track)       

               git add TEST.md   //階段性的添加,還沒有真正提交

               git commit -s -m "your message about your changes" // 填寫提交代碼改動的相關備註

               最後一步提交代碼:

                 

           操作完成後即可在你的github賬戶中的docker-fork目錄下查找dry-run-test目錄及該目錄下的TEST.md文件,即提交成功。

     三.啓動開發環境的容器並嘗試修改源碼

          (1)先刪除原有的容器和鏡像

                 docker rm $(docker ps -a -q)//刪除

                 docker images//驗證

          (2)運行一個開發環境下的容器 

                 cd ~/repos/docker-fork

                 git checkout dry-run-test //確保我在dry-run-test分支下

                 make BIND_DIR=.shell //使用make命令構建一個開發環境鏡像並將它運行在一個容器當中

                 

         docker run --rm -i --privileged -e BUILDFLAGS -e KEEPBUNDLE -e DOCKER_BUILD_GOGC -e DOCKER_BUILD_PKGS -e DOCKER_CLIENTONLY -e DOCKER_DEBUG -e DOCKER_EXPERIMENTAL -e DOCKER_GITCOMMIT -e DOCKER_GRAPHDRIVER=devicemapper -e DOCKER_INCREMENTAL_BINARY -e DOCKER_REMAP_ROOT -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT -v "home/ubuntu/repos/docker/bundles:/go/src/github.com/docker/docker/bundles" -t "docker-dev:dry-run-test" bash

                    //這個命令就是在dry-run-test目錄下構建一個鏡像並運行該容器,並且該容器內部安裝有docker                 

                該命令執行後,我們會進入該容器環境目錄如下

root@f31fa223770f:/go/src/github.com/docker/docker#

                 通過ls命令我們依然可以看到docker源碼目錄,然後編譯docker命令二進制文件,並將該二進制文件cp到usr/bin/目錄下。

                 將上述容器環境的目錄下執行:

                 hack/make.sh binary

cp bundles/1.12.0-dev/binary-client/docker* /usr/bin/

cp bundles/1.12.0-dev/binary-daemon/docker* /usr/bin/

                 現在就可以直接使用docker命令了

                 docker daemon -D&  //-D表示debug模式,&表示後臺運行

                 hack/make.sh binary install-binary run // 這個命令會使得run這個命令自動執行build ,install,run三個命令

                 docker run hello-world  成功運行即可

         (3)嘗試修改docker源碼

                 到這裏你已經成功在docker-fork/dry-run-test目錄下構建了一個開發環境的容器,並且該容器裏面運行着docker,含有docker源碼,並可以執行docker的二進制命令文件。

                 當我們在docker-fork目錄下所做的docker源碼的修改,想要它與開發環境容器中的docker源碼同步並運行測試,需要經歷以下幾步:

                 首先我們要確定我們在docker-fork目錄環境下                 

                 make shell //這是將我本地的docker源碼倉庫(也就是docker-fork)掛載到開發環境docker容器中

                 打開

cli/command/container/attach.go文件

                 做如下修改:

flags.BoolVar(&opts.noStdin, "no-stdin", false, "Do not attach STDIN")

|修改爲下面的內容

flags.BoolVar(&opts.noStdin, "no-stdin", false, "Do not attach STDIN (standard in)")

                     保存退出後執行

                     進入我們的開發環境的容器重新編譯docker二進制文件:

                     hack/make.sh binary

cp bundles/1.12.0-dev/binary-client/docker* /usr/bin/

cp bundles/1.12.0-dev/binary-daemon/docker* /usr/bin/

                    然後執行docker attach --help就會出現如下信息

                 至此我們已經可以成功的創建github環境的配置及代碼提交操作包括docker源碼的修改測試等全部流程,此後,我們再慢慢閱讀docker源碼,嘗試根據自己的需求去做特定的修改,然後提交至github,爲docker開源社區做出我們的貢獻~                   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章