首页 > 解决方案 > 如何在 gitlab-ci.yml 中指定图像平台

问题描述

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

stages:
  - build
  - deploy

build_j:
  image: customServer/debian/jessy

我检查了Docker Images 文档找不到任何示例。另一种方法可能是显式提取图像并使用脚本运行命令。

docker pull debian:jessy -platform i386

标签: gitlabgitlab-ci

解决方案


由于 Docker 镜像的多架构/平台标签具有不同的摘要,您可以使用其摘要(而不是使用标签)拉取 Docker 镜像以拉取所需的架构/平台。

这是Docker Hub中 Docker 映像 (Ubuntu) 的多架构/平台标签的示例: 在此处输入图像描述 如您所见,20.04是一个多架构标签,标签中的每个架构都有不同的摘要。
如果您运行命令docker pull ubuntu:20.04 ,它将拉取所有架构。
但是命令
docker pull ubuntu@sha256:55e5613c8c7bcd8044aaf09d64d20518964a0d7a6e41af129f95b731301c2659 只会拉linux/arm/v7

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

job_1:
  image: ubuntu@sha256:55e5613c8c7bcd8044aaf09d64d20518964a0d7a6e41af129f95b731301c2659
  script:
    - ...

job_2:
  image: alpine@sha256:71465c7d45a086a2181ce33bb47f7eaef5c233eace65704da0c5e5454a79cee5
  script:
    - ...


推荐阅读