Loongson-Cloud-Community/dockerfiles

镜像定期构建申请

wojiushixiaobai opened this issue · 3 comments

部分镜像由于更新很频繁,是否可以启动计划触发构建?

一些无架构问题的镜像,如 python,建议每日自动监控上游版本更新,然后自动触发构建。

需要定制一个标准化自动构建的流程,减少人工介入。

比如 Minio,基本每周都会有更新,可以通过脚本检测版本更新。
例:

# github.com/minio/minio
OWNER_NAME=minio
REPO_NAME=minio

# cr.loongnix.cn/repository/minio/minio
CR_OWNER=minio
CR_REPO=minio

function get_app_version() {
  curl -s "https://api.github.com/repos/${OWNER_NAME}/${REPO_NAME}/releases/latest" |
    grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' |
    sed 's/\"//g;s/,//g;s/ //g'
}
function check_app_build() {
  APP_VERSION=$1
  if curl -s "https://cr.loongnix.cn/api/v1/repository/${CR_OWNER}/${CR_REPO}/tag/?limit=100" | grep "${APP_VERSION}"; then 
    echo "Yes"
  fi
}

APP_VERSION=$(get_app_version)
CHECK_BUILD=$(check_app_build)

if [ -n "${RUN_BUILD}" ]; then
  echo "[Info]: 镜像存在,跳过."
  exit 0
fi

## 触发构建逻辑
# 
# make -C ${CR_OWNER}/${CR_REPO} APP_VERSION=${APP_VERSION} ....
....

@wojiushixiaobai 我们在考虑进行这个工作,重点包括 kubernetes 和 library 下比较标准的镜像。您有什么初步的项目规划吗?

@znley
目前没什么规划,需要定期构建的原因其实是修复一些安全问题。

一些基础设施应用如果 Dockerfile 本身方便维护或者与上游无冲突,这部分应用是否可以考虑自动化构建构建上传。

  • 每日构建触发流程。
  • 测试用例(简单的功能验证)。
  • 构建通知。

因为当前 cr.loongnix.cn 不对外开放注册,而且旧世界还要维护一段比较长的时间,所以提了这样一个申请,看看是否有现成的流程可以接入。

@wojiushixiaobai
我们在考虑整个框架,因为不可能对每一个项目单独开仓库(github repo),需要把这些项目集中管理为一个仓库,要对项目的组织形式和通用框架做一个验证。