docker入门教程十一:docker+github自动构建

简介

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实现自动构建镜像

  • 本文作者: wumingx
  • 本文链接: https://www.wumingx.com/k8s/docker-github.html
  • 本文主题: docker入门教程十一:docker+github自动构建
  • 版权声明: 本博客所有文章除特别声明外,转载请注明出处!如有侵权,请联系我删除。
0%