docker最新程式碼原始碼編譯
阿新 • • 發佈:2019-01-30
前言
docker的編譯環境非常複雜,但是docker是幹嘛的?環境怎能成為問題,於是docker官方提供了docker編譯環境dockerfile。於是docker編譯就非常簡單了。
獲取原始碼
拉取最新的docker原始碼
git clone https://github.com/docker/docker.git
由於docker是個大專案,那當然原始碼檔案眾多,你一般的網路很有可能就中途出錯了。如果你在國外有一臺伺服器,那強烈推薦你去伺服器上下載。如果沒有。這裡我下載了最新(2016-12-09)的程式碼打了個tar包你可以直接下載:
http://www.yiyun .pro/docker.tar
下載解壓後你可以進行git更新操作。
檢視dockerfile檔案
在docker原始碼主目錄中有當前版本的dockerfile。比較複雜,如果你有興趣可以看看到底需要哪些環境。
製作映象
那麼問題又來了,我們處在網路很好的天國。所以你別想docker build -t docker-dev:xx .
就能或者直接make build
製作映象了。有大量的檔案無法下載。那麼怎麼辦呢?還是那個辦法,去國外伺服器。沒有?下載我做的映象:為了讓你下載快,我也打了tar包:
# wget http://www.yiyun.pro/docker-dev.tar
# docker load -i docker-dev.tar
執行完成你本地就會有映象docker:dev
編譯
有了映象就容易了。首先開啟makefile檔案修改變數:
# 找到以下:
DOCKER_IMAGE := docker-dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
# 改成:
DOCKER_IMAGE := docker:dev
# 找到:
build: bundles init-go-pkg-cache
docker build ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
#改成:
build: bundles init-go-pkg-cache
同時你可以看看整個makefile ,我們的目的就是不讓他製作映象了同時使用我們之前做好的映象。
make all
:將會全部編譯和跑測試
make binary
:編譯二進位制
還有很多其他的就根據你的需要選擇了。
編譯的二進位制在目錄bundles
中
本文來自一雲部落格:http://blog.yiyun.pro