Docker Hub上的自动化构建

关于自动化构建

​Dockerfile​​ 或者 GitHub 、 BitBucket 仓库(或环境)来自动创建镜像。该系统将从仓库复制一份,并根据以仓库为环境的 ​​Dockerfile​

自动化构建有许多优势:

  • 你的自动化构建项目一定是准确按照预期构建的
  • 在 Docker Hub 注册表上,任何拥有你仓库访问权限的用户都乐意浏览 

​Dockerfile​

  • 自动化构建保证了你的仓库总是最新的

自动化构建支持 ​​GitHub​​​ 和 ​​BitBucket​​ 的私有和公有的仓库。

要使用自动化构建,你必须拥有经过验证有效的 Docker Hub 账户和 GitHub/Bitbucket 账户。

设置GitHub自动化构建

首先,你需要将 GitHub 账户链接到你的 ​​Docker Hub​​ 账户,以允许注册表查看你的仓库。

注:目前我们需要有读写权限以建立 Docker Hub 和 GitHub 的挂钩服务,这是GitHub管理权限的方式,我们别无选择。抱歉!我们将保护您的账户及隐私,确保不会被他人非法获取。

开始构建!登录到你的 Docker Hub 账户,点击屏幕右上方的 "+ Add Repository" 按钮,选择​​自动化构建​​。

选择​​GitHub服务​

然后按照说明授权和连接你的 GitHub 账户到 Docker Hub。连接成功后,你就可以选择用来自动化构建的仓库了。

创建一个自动化构建项目

​Dockerfile​​ 从你的公共或者私有仓库​​​创建一个自动化构建项目​​。

GitHub子模块

如果你的 GitHub 仓库包含了私有子模块的连接,你需要在 Docker Hub 上添加部署秘钥。

部署秘钥位于自动化构建主页的 “Build Details” 菜单。访问设置 GitHub 仓库的页面,选择 “Deploy keys” 来添加秘钥。

Step

Screenshot

Description

1.

​​


你的自动化构建部署秘钥位于 “Build Details” 菜单的 “Deploy keys” 下。

2.

​​


在你的 GitHub 子模块仓库设置页,添加部署秘钥。

GitHub组织

一旦你的组织成员身份设置为公开,对应的 GitHub 组织状态便会被公开在你的 GitHub 上。为了验证,你可以查看 GitHub 上你的组织的成员选项卡。

GitHub服务挂钩

按照以下步骤配置自动化构建的 GitHub 服务挂钩:

Step

Screenshot

Description

1.

​​


登录到 GitHub.com,并转到您的仓库页面,点击右侧页面“Settings”。 执行该操作要求你有该仓库的管理员权限。

2.

​​


点击页面左侧的“Webhooks & Services”。

3.

​​


找到 "Docker" 并点击它.

4.

​​


============================================================================


最后一步

相信很多新手看完上面的指南仍然云里雾里,留了最后一层窗户纸:在Github项目顶层目录添加配套的Dockerfile!

1. FROM ubuntu  
2.
3. MAINTAINER Wei Zhou <cszhouwei@gmail.com>
4.
5. RUN apt-get update; \
6. apt-get -y upgrade
7.
8. RUN apt-get -y install g++ cmake git subversion
9.
10. RUN mkdir /home/git; \
11. cd /home/git; \
12. sudo git clone https://github.com/cszhouwei/cmake_demo.git -b master; \
13. cd cmake_demo; \
14. mkdir build; \
15. cd build; \
16. cmake -DCMAKE_BUILD_TYPE=Release ../; \
17. make
18.
19. CMD ["/home/git/cmake_demo/buld/module_xxx/module_xxx", "--config", "/etc/module_xxx.conf"]


上述Dockerfile位于我的cmake_demo示例项目,有兴趣的读者请自取!

Github:​​https://github.com/cszhouwei/cmake_demo.git​

DockerHub:docker pull cszhouwei/cmake-demo