这是根据自己项目修改而记录的过程,对他人不具有参考性

一、按照以下教程,搭建docker编译环境:Docker源码编译和开发环境搭建

二、由于我对docker源码的修改导入了mysql数据库的包,如下教程:go连接mysql数据库

如果出现如下问题:

 imports context: unrecognized import path "context"

那么需要将go版本升级到go1.7以上,最新的dockercore/docker:latest镜像是go 1.7.5的,但是编译仍然会出现context的问题,于是决定升级到go1.9.2,升级教程如下:安装go版本更新,这里我们可以选择第二种方式是最简单的:

1、如果出现网络问题,我们可以先手动下载下来,然后通过数据卷的方式,放入run起来的容器

wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

2、将上面的压缩包放置在/usr/local/目录下,解压替换原本的go目录

rm -rf go
tar -xzf go1.9.2.linux-amd64.tar.gz

3、设置环境变量

export GOROOT="/usr/local/go"
export GOPATH="/go:/go/src/github.com/docker/docker/vendor"

4、验证安装是否成功

go version

会发现go版本已经是1.9.2

三、如果go版本已经更新,则接下来我们进行mysql包的安装应该是可以安装成功的

go get github.com/go-sql-driver/mysql

四、接着我们就可以按照步骤一

root@f2753f78bb6d:/go/src/github.com/docker/docker# DOCKER_GITCOMMIT=3385658 ./hack/make.sh binary

应该可以编译成功

五、执行步骤一中的复制操作之后,记得重启服务

systemctl restart docker

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐