ITPub博客

首页 > 云计算 > > docker源码编译打包指南(docker-ce)

docker源码编译打包指南(docker-ce)

作者:浪花小雨滴 时间:2020-05-08 11:28:38 0 删除 编辑
  1. 前提条件:已安装docker.

docker以每月发布一个版本的节奏进行开发。命名规则为:年份-月份-ce,其中ce表示社区版本。

本文用的Docker version 是 18.06.3-ce。

Docker CE包含了docker引擎,docker命令行以及打包工具。网上也有其他以moby或单独docker引擎打包的经验,比较之下还是docker ce编译打包最为全面和妥当,这样打包出来已经是rpm包可以直接安装,而不是需要手动替换docker的二进制包!

  1. 下载源码

    git clone https://github.com/docker/docker-ce

  1. 163MiB大小的源码,下载完毕!
cd docker-ce
复制代码
  1. 切换分支
git checkout -b v18.06.3-ce
复制代码

3. 进入打包目录cd ./components/packaging/rpm/ 这样随后得到的是rpm包,也有另外目录可以打deb包,自取。

  1. 编译打包命令:
make  VERSION=18.06.3-ce ENGINE_DIR=/path-to-docker/docker-ce/components/engine CLI_DIR=/path-to-docker/docker-ce/components/cli centos-7
复制代码
  1. 果然,不会那么顺利,立即编译失败:buildkit not supported by daemon!

6. 上图可见最终生成的编译指令是:

docker run --rm -v /root/qzy/docker-src/docker-ce/components/packaging/rpm:/v -w /v alpine chown -R root:root rpmbuild
DOCKER_BUILDKIT=1 docker build  --build-arg GO_IMAGE=golang:1.13.10-buster -t rpmbuild-centos-7/x86_64 -f centos-7/Dockerfile .
复制代码

其中有DOCKER_BUILDKIT=1,那么改DOCKER_BUILDKIT=0尝试。 这个设置在rpm目录下的Makefile约16行处!保存后可以继续编译了。

原因是下载的docker不支持buildkit,所以需要关闭DOCKER_BUILDKIT.不纠结!

  1. 安装或更新了很多(系统上的)依赖包,从github自行下载了很多代码块,进行了10分钟,报错:

fatal: unable to access 'https://github.com/krallin/tini.git/': Failed connect to github.com:443; Connection timed out
似乎是网络问题,重试!

  1. 确实是网络问题,重试两次下载tini完成,继续下载依赖。 后续又因网络问题重试了几次,编译完成:

    exit 0标示正常退出了。

  2. 进入docker-ce/components/packaging/rpm/rpmbuild/RPMS/x86_64查看:

  3. 拷贝到其他机器rpm安装。先安装docker-ce-cli后安装docker-ce,安装完成后使用docker version查看版本!如遇到问题请回复交流!


作者:朝朝mumu
链接:https://juejin.im/post/5eaa679df265da7b9450b3f8
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3163707/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据结构大梳理
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39892