2022-08-11 Gitee Go 流水线构建镜像并推送到阿里云容器镜像服务 ACR
参考:
Gitee Go: https://gitee.com/features/gitee-go
阿里云容器镜像服务(ACR):https://cr.console.aliyun.com/
阿里云容器镜像服务设置
首先是阿里云这边,从 https://cr.console.aliyun.com/ 进去就能看见主页,开通服务后选择一个地区即可,一般是选择离自己最近的地区,这样网络好些,我这里就选择了杭州地区。
【个人版已经够用了,有需求的再考虑企业版】
进入之后首先要做的是新建一个命名空间,这个很重要,后面会提到为什么。
新建的这个命名空间一定得是你 Gitee 的个人空间地址,例如本人的 Gitee 的个人空间地址是 caomeiyouren,那么阿里云这边的命名空间就也是 caomeiyouren!
【关于 Gitee 的个人空间地址从那看,请点击https://gitee.com/profile,然后切换到右边的`个人空间地址 tab`
】
关于为什么要这么做,是因为 Gitee Go 的镜像构建存在问题,无法指定命名空间,会将Gitee 的个人空间地址作为阿里云的命名空间使用!
下面就是个失败的案例,会因为没有权限访问而失败。
接下来则是关键一部,设置访问凭证,出于方便起见,设置为固定密码比较简单。
这里要注意的是,虽然登录名称是账号的用户名,但这里的密码并不是账号的主密码,是“容器镜像服务”单独的密码,可以随意设置,够安全即可。
然后可以在终端进行测试,成功登录即为设置成功,失败的话请自行排查原因
1 | sudo docker login --username=xxxxxxxxx registry.cn-hangzhou.aliyuncs.com |
Gitee Go 流水线 设置
接下来就是 Gitee 这边的设置了,首先前往凭证管理页面设置Docker Registry
凭证,按之前设置的填写即可。
保存好凭证之后,前往项目的流水线配置页面,添加一个镜像构建
任务
仓库凭证选择之前填写好的阿里云仓库凭证即可,也可以直接填写账号密码
然后关于镜像 tag 需要重点说下,个人建议设置成${GITEE_REPO}:v0.${GITEE_PIPELINE_BUILD_NUMBER}
的格式。
或者 ${GITEE_REPO}:v${GITEE_PIPELINE_BUILD_NUMBER} ,直接用流水线号当版本号
原因是默认的${GITEE_PIPELINE_BUILD_NUMBER}
tag 完全无法体现这是哪个仓库的镜像,命名上不太友好。
当然了,后面的版本号就看个人喜好了,因为我这个项目还是开发阶段,所以版本号就设置成0.x
了,看自己情况即可。
这里再额外多说一句,不知道为什么,开启 Docker 缓存之后会导致 Gitee Go 没有权限写入缓存,所以这里就不开启缓存了,开启了会报错。
当成功打包之后,就可以在 Gitee Go 里看见参数信息中多了一个GITEE_DOCKER_IMAGE
变量,这个就是这次打出来的包的名称,在需要地方直接 pull 下来部署即可
1 | docker pull $GITEE_DOCKER_IMAGE |
此时你的阿里云仓库里应该有个同样名字的仓库,检查下版本号即可确认是否成功。
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/26f5ba7.html
版权声明:转载请注明出处!