管理 docker 个图像版本

Managing docker image versions

我正在为项目创建 CI 流程。该项目由 2 个部分组成:

  1. petalinux 图像 - CI 进程使用 petalinux-build 构建 linux 图像并使用 petalinux-build --sdk 生成 SDK。不必了解 petalinux 就可以回答这个问题。只知道项目的这一边创建了一个 SDK,它将在项目的第二个组件中使用。
    每次我 运行 这个 petalinux 构建时,我还创建了一个 Docker 图像,里面有 SDK,我想在构建第二个时使用这个图像组件 - 应用程序
  2. 应用程序 - 这是使用在 petalinux 组件中创建的 Docker 图像构建的。

问题是,每次我构建 Docker 图像时,我想用 petalinux 项目的版本标记它并将它保存在 Docker 注册表中.所以我的 Docker 注册表看起来像:

-- sdk
 | 
 + - 1.0
 |
 + - 1.3
 | 
 + - 1.6 .. etc.

现在,当我构建应用程序时,我想使用最新的 sdk 映像。所以基本上我希望每次构建 petalinux 项目时将 2 个标签推送到 docker 注册表:当前版本,比如 1.9 和最新版本。

有人认识这样的图案吗?在 Jenkins 脚本中执行此操作的最佳方法是什么?

要推送多个标签,只需使用shell脚本在docker构建命令中指定多个标签即可,例如

docker build -t image_namespace/image_name:tag1 -t image_namespace/image_name:latest .

然后两个都push,即:

docker push image_namespace/image_name:tag1
docker push image_namespace/image_name:latest

您可能还会发现多行 shell 脚本很有用 - jenkins pipeline: multiline shell commands with pipe