Skip to content

Sync Docker images to Euler registries #13

Description

@shink

Registries

  1. hub.oepkgs.net
  2. docker.io/openeuler
  3. quay.io/openeuler

Solutions

发布 Ascend 镜像,同时也发布到 openEuler

Steps

DEPRECATED

Solutions

发布 Ascend 镜像后,调用 update.pyopeneuler-docker-images 仓库提交 pull request,触发构建

Steps

  1. 发布完 Ascend 镜像后,调用脚本

以 cann 镜像为例:

python update.py \
  --url https://github.com/openmerlin/dockerfile \
  --branch main \
  --context cann \
  --file cann/openeuler.Dockerfile \
  --args {"cann_version": "8.0.RC1", "cann_chip": "910b", "xxx": "yyy"}
  1. 难点在于 CI 中如何获取当前构建的 bake target 的 args —— @shink

Steps

  1. arg.json 新增 registry
  2. 登录 Token 添加到 Actions Secrets
  3. docker-login 支持登录 registry

Problems

当前仓库已支持发布到 Ascend 的 Docker Hub 和 Quay.io,若要同时发布到 Euler 的 Docker Hub 和 Quay.io,则需实现同一 registry 登录多个账号,但目前 Docker 无法实现——后登录的账号会覆盖前面登录的账号,因此无法实现在同一个 Job 中同时将镜像发布至 Ascend 和 Euler

Solutions

  1. 单独创建一个新的 workflow——docker-euler.yml,其中修改 arg.json 的 registry 信息,release 时进行构建并发布

    缺点:浪费资源,相同的镜像还需要再重新构建一遍

  2. 同一个 workflow 中,发布完 Ascend 镜像后 logout 再 login euler,然后再发布到 Euler

    缺点:GitHub Runner 磁盘空间有限,没有足够空间 load 到磁盘

  3. 重构 CI,摒弃掉 Bake,自定义构建脚本

    缺点:工作量大

cc: @wjunLu @GuangJie1 @22dimensions

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions