如何在gitlab-ci.yml中指定图像平台

如何在gitlab-ci.yml中指定图像平台,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我正在尝试构建CI管道,它确实是为特定的图像构建的。但是,在CI文件中,我找不到指定图像平台的方法 stages: - build - deploy build_j: image: customServer/debian/jessy 我检查了一下,但没有找到任何例子。另一种方法可能是显式地提取图像并使用脚本运行命令 docker pull debian:jessy -platform i386 由于Docker映像的多体系结构/平台标记具有不同的摘要,因此您可以(而不是使用标记

我正在尝试构建CI管道,它确实是为特定的图像构建的。但是,在CI文件中,我找不到指定图像平台的方法

stages:
  - build
  - deploy

build_j:
  image: customServer/debian/jessy
我检查了一下,但没有找到任何例子。另一种方法可能是显式地提取图像并使用脚本运行命令

docker pull debian:jessy -platform i386

由于Docker映像的多体系结构/平台标记具有不同的摘要,因此您可以(而不是使用标记)提取所需的体系结构/平台。

以下是Docker映像(Ubuntu)的多架构/平台标签示例: 如您所见,20.04是一个多架构标签,标签中的每种架构都有不同的摘要
如果您运行命令
docker pull ubuntu:20.04
它将拉动所有架构。
但是命令
docker拉力ubuntu@sha256:55e5613c8c7bcd8044aaf09d64d20518964a0d7a6e41af129f95b731301c2659
将只拉
linux/arm/v7

正如我所尝试的,可以在
.gitlab ci.yml
中使用摘要:

job_1:
图片:ubuntu@sha256:55e5613c8c7bcd8044aaf09d64d20518964a0d7a6e41af129f95b731301c2659
脚本:
- ...
职位2:
图片:alpine@sha256:71465c7d45a086a2181ce33bb47f7eaef5c233eace65704da0c5e5454a79cee5
脚本:
- ...
谈到图像摘要,(2020年10月)建议:

在新标签上创建带有图像摘要的发行版 Docker支持不可变的图像标识符,我们采用了这一最佳实践来更新我们的云部署图像

当一个新的图像被标记时,我们也会在其构建时以编程方式检索图像摘要,并创建一个发行说明来有效地将该摘要传达给用户。
这保证了服务的每个实例运行完全相同的代码。
您可以回滚到图像的早期版本,即使该版本未标记(或不再标记)。这甚至可以防止在部署过程中推送新映像时出现争用情况

见和