gitlab - 如何在 gitlab-ci.yml 中指定图像平台
问题描述
我正在尝试构建为特定图像构建的 CI 管道。然而,在 CI 文件中,我找不到指定图像平台的方法。
stages:
- build
- deploy
build_j:
image: customServer/debian/jessy
我检查了Docker Images 文档,但找不到任何示例。另一种方法可能是显式提取图像并使用脚本运行命令。
docker pull debian:jessy -platform i386
解决方案
由于 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:
- ...
推荐阅读
- java - Java菜单栏隐藏背景图片
- angular - 如果需要与另一台服务器通信,如何构建我的 webapp?
- php - 在 Ubuntu / Nginx / Visual Studio Code 中使用 xdebug 时出错
- azure-billing-api - Azure 中国计费报告 API 端点
- python-3.x - java.util.NoSuchElementException:找不到密钥:_PYSPARK_DRIVER_CALLBACK_HOST
- python - array.copy() 与 numpy.copy(array) 之间的区别
- amazon-web-services - 如何修复 API 从我的 AWS Kubernetes pod 中看到的 IP 地址
- python - 如何在 Python 中查找 .txt 文件中某一列的总和?
- python - 写入输出时,标头不充当标头。Python
- python - Use a variable number of conditions to select rows whose column value equals some value