简介

docker search的时候,有看到了AUTOMATED这一字段,这是会意思呢?其实就是docker hub提供的自动构建 镜像的功能。

1
2
3
4
[root@master ~]# docker search --limit 2 nginx
NAME                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                 Official build of Nginx.                        12030               [OK]
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   1670                                    [OK]

 

自动构建有几个优点:

  • 以这种方式构建的镜像完全符合期望
  • 可以访问 Docker Hub 仓库的任何人都可以使用 Dockerfile。
  • 代码变化后仓库会自动更新。

先决条件

要使用自动构建,必须在 Docker Hub 和托管仓库(GitHub 或 Bitbucket)上拥有一个帐户。如果之前已链接过你的 Github 或 Bitbucket 帐户,则必须选择公共和私有连接类型。

要查看你当前的连接设置,请登录到 Docker Hub 并选择 Profile > Account Settings > Linked Accounts & Services。

然后根据提示进行设置即可。

创建自动构建

华为云官方有开源了坦克大战的源码,我们先下载:git clone https://codehub.devcloud.huaweicloud.com/Demo04260/tank.git,然后在本地创建版本库,再上传至github上,然后再继续下面的操作。

点击 repositories --> create repository 会出现如下界面:

注意要选择正常的github源。按需填写后点击 Create 。

再点击进入创建好的repository,选 Builds 项,再点击Configure automated builds后,按以下填写好即可。

这样设置好了之后,我们每次给github提交更新,那镜像就会跟着自动构建了。在 Builds 项,是可以看到构建的记录了。

验证

使用docker pull看是否可以正常下载。

1
2
3
4
5
6
7
8
9
10
11
[root@master ~]# docker pull fang2000/tank
Using default tag: latest
latest: Pulling from fang2000/tank
b8f262c62ec6: Already exists
e9218e8f93b1: Pull complete
7acba7289aa3: Pull complete
ee2203498806: Pull complete
Digest: sha256:90b71f7e4c6dcb568dbf80ac736bac36b9454c877caf23f86f8997c467886ac5
Status: Downloaded newer image for fang2000/tank:latest
[root@master ~]# docker run -itd --name tank -p 8989:80 fang2000/tank
ba63166134ac1cba3b3f6707238da2e6b1d9a7e569459ba2f4788c79b5a92fc5

实例:使用华为云自动构建镜像

华为云也有类似的功能,我们可以体验下。

首先通过 https://support.huaweicloud.com/usermanual-swr/swr_01_1000.html 来获取长期有效的docker login指令。

打开 代码托管 网站,选择按模板新建,搜索选择 tank ,即经典的坦克大战。

按照提示,请新建好tank这个仓库。

打开 容器交付流水线,选择模板市场,镜像构建,将源码直接构建成镜像,创建流水线。然后选择刚刚创建的镜像,或者直接输入 https://devcloud.com/Demo04260/tank.git 这个链接。

再选择镜像构建方法:

确认成功之后,点击启动流水线。

这时打开 容器镜像服务 就可以看到创建好的镜像了。下载以及运行镜像:

1
2
docker pull swr.cn-north-1.myhuaweicloud.com/fang141x/tank:v1
docker run -d --name tank -p 8080:80 swr.cn-north-1.myhuaweicloud.com/fang141x/tank:v1

这时坦克大战就可以开始了。

不管是docker hub还是华为云,其原理都是通过Dockerfile来实现自动构建的,所以在上传给github的代码的根目录必须要有这个文件。

参考资料

https://docs.docker.com/docker-hub/builds/

GitHub+Docker Hub实现自动构建镜像

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!