github 和 dockerhub 关联 自动触发构建镜像
起因
由于国外的很多镜像访问不到(譬如谷歌的gcr.io),于是乎就只能走曲线救国路线啦。。。
创建账号
首先要有 github 和 dockerhub 的账号,没有的话就去创建吧。呃... 貌似是废话
建立关联
1. 登录 dockerhub https://hub.docker.com/
2. 切换到 Repositories 栏目
3. 点击创建仓库
4. 会看到 github 的标识。如果没有关联会现在 Disconnected 字样,我这里已经关联了,所以是 Connected
5. 根据提示点点就关联了,比较繁琐和傻瓜,这里就不说了
github 新建放置 Dockerfile 的仓库
在 github 上面我们新建一个仓库名字叫 dockerfile ; 里面新建一个文件夹 gcr.io-offical-kaniko,放置做镜像的相关文件。
dockerhub 新建仓库
1. 基本信息填写(自定义)
2. 选择 github 关联信息
选择 github 图标,接着选择 关联的账号 mrlaojia 和 仓库 dockerfile
3. 重点来了: 设置构建规则(本步骤只说明不做操作)
默认会从仓库的 master 分支,根路径下的 Dockerfile 文件进行构建,构建后的镜像版本号为 latest
4. 更重要的点来了:构建 tag 规则
上图中,我们不用配置规则,直接点 create 创建仓库。然后进入下图路径,进行配置 tag 规则
新建配置 tag 规则
第一行就是默认的规则,我们可以直接删除就行了(每行后面的垃圾桶就是删除)。
SourceType: Tag
Source:/^kaniko-([0-9.]+)$/ 匹配 github 上面打的 tag 名字。这里匹配如:kaniko-0.1.1
Docker Tag:v-{\1} 构建镜像完毕后,镜像的版本号。如:v-0.1.1
Dockerfile location: Dockerfile 填写 Dokerfile 文件名字就可以了
Build Context:/gcr.io-offical-kaniko/ Dockerfile 所在的路径。dockerhub会将 github仓库down下来,然后在这个目录下面 build
之所以要先创建仓库,再配置 tag 规则,是因为在上面第 3 步,创建仓库的时候,规则中没有 build Context 选项
github 仓库 编写 Dockerfile 打tag
通过上面的操作,设置基本完成了,接下来就是打个 tag 来测试一下啦,测试过程就不写了。
下面是 git 打 tag 的相关命令
# 列出所有tag $ git tag # 新建一个tag在当前commit $ git tag [tagName] # 提交所有tag $ git push origin --tag # 删除本地tag $ git tag -d [tagName] # 删除远程tag $ git push origin :refs/tags/[tagName] $ git push origin --delete tag [tagName]
共 0 条评论