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

大功告成。