使用 GitHub Actions 转存 docker 到阿里云镜像托管服务

174 天前
 MoonLin

地址:GitHub

这几天 DockerHub 的镜像仓库被下线对我影响不小,我很多内网机器并没有配置什么特殊的网络服务,配置起来也比较复杂,干脆准备自己搭建一个专门为自己服务的 Docker 镜像源。

感谢 GitHub Actions 和阿里云镜像托管服务,可以省去自己搭建专门的服务器,也希望大家点个 star 。

使用阿里云出品的 image-syncer 而非直接通过 Docker pull & push 可以规避 Docker 客户端不方便自定义复杂的拉取规则。

简单使用方式

1. 配置阿里云容器镜像服务

  1. 登录容器镜像服务,新建个人版容器命名空间。
  2. 「访问凭证」- 设置固定密码。
  3. 记住「访问凭证」中的仓库地址、非脱敏后的用户名和密码,下一步需要用到。

2. Fork 本项目

  1. 进入 Fork 后自己的项目。
  2. 修改 auth.yaml 中的字段为 自己仓库地址/命名空间
  3. 「 Settings 」-「 Secret and variables 」-「 Actions 」-「 New repository secret 」新增 ACR_USERACR_PASSWORD,分别为「阿里云容器镜像服务」-「访问凭证」中非脱敏后的用户名和密码。
  4. 进入「 Actions 」启用 Actions 。
  5. 编辑 images.yaml 添加对应镜像即可,规则参考 image-syncer建议用 latest 等 TAG 限制转存范围,防止过分滥用 Actions 服务
  6. (可选)把自己仓库地址配置成镜像源,省去输入完整镜像地址。
  7. 修改原来的镜像地址为 images.yaml 配置的目标地址。
1771 次点击
所在节点    分享创造
8 条回复
guanzhangzhang
174 天前
我自己之前用 skopeo 的库+bbolt ,去吧谷歌镜像同步到阿里云上了。
hxsf
174 天前
这样做是否已经是滥用 action 服务了?有被 ban 的风险吧
kebamt
174 天前
这种基础设施都能干掉,真是奇葩,自己卡自己脖子
MoonLin
172 天前
@hxsf 有可能,不过可选的平台比较多,根据这个思路用任何一个能访问 DockerHub 的 serverless 平台都能完成。
blankmiss
172 天前
我直接用 nexus 反向代理 dockerhub 仓库 自己用
boyhappy
168 天前
@kebamt 啊,已经不让 Github 的 actions 推镜像,到阿里云的容器镜像服务了么?我试了好几次,都 build 成功了,但阿里云镜像版本一直不更新!
MoonLin
166 天前
@boyhappy action 里没有任何报错吗
qbmiller
135 天前
加个过滤,看到好几个类似的。
每次都是全推,能不能只看 git 变化推。 或者拉列表 diff 下再推

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1048144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX