docker笔记:手工编译docker
- 2019 年 11 月 22 日
- 筆記
1/ 从github clone 镜像
2/ 使用tag,查看版本
3/ checkout 较稳定的版本
4/ 在home/docker/docker下,如果没有autogen文件夹,那就建一个。下辖dockerversion/dockerversion.go
代码如下:
// AUTOGENERATED FILE; see hack/make/.go-autogen package dockerversion var ( GITCOMMIT string = "" VERSION string = "" IAMSTATIC string = "true" INITSHA1 string = "" INITPATH string = "" )
5/ 此时 在docker/docker go build 会提示有很多包找不到,需要配置gopath。
如:
export GOPATH=/home/yzh/docker/vendor:/home/yzh/docker:/home/yzh/gopath
/home/yzh/gopath 是一个链接,代码如下。这样就不用把API文件夹再拷贝一份了。事实上,docker的源文件包含了所有需要的东西。
ln -s /home/yzh/docker /home/yzh/gopath/github.com/docker
6/ 设置允许使用C代码。
CGO_ENABLED=1
7/ 如果还报错,CGO_XXXX
试一试:
export PATH=/usr/local/go/bin:$PATH
8/ 在docker/docker 下 go build。
root@yzh:/home/yzh/docker/docker# go build
大功告成。