You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gitlab CI拉取nginx:latest失败,schema版本不兼容等问题求助

解决方案

1. 升级Buildah/Podman版本

旧版本的buildah/podman对OCI镜像schema v2的支持存在缺陷,直接升级到最新稳定版:

  • 以RHEL/CentOS为例执行升级:
    dnf update buildah podman -y
    
  • 验证版本是否更新成功:
    buildah --version
    podman --version
    

2. 调整Buildah构建格式

去掉构建命令里的--format docker参数,改用默认的OCI格式(或显式指定):

buildah bud -t <你的镜像标签> .
# 或者显式指定OCI格式
buildah bud --format oci -t <你的镜像标签> .

新版Gitlab对OCI标准的适配性更好,放弃Docker格式指定后能规避schema版本兼容问题。

3. 修正镜像仓库优先级配置

编辑容器工具的仓库配置文件,避免优先尝试本地仓库:

  • 修改/etc/containers/registries.conf,添加或确保以下内容:
    [[registry]]
    prefix = "docker.io/library"
    location = "docker.io/library"
    
  • 重启podman服务生效:
    systemctl restart podman
    

4. 直接指定镜像的Digest哈希

如果升级工具后仍有问题,在Dockerfile里用哈希指定兼容的镜像版本:

FROM docker.io/library/nginx:latest@sha256:<你获取到的manifest哈希值>

哈希值可以在能正常拉取镜像的环境里执行podman inspect nginx:latest,从Digest字段复制。

5. 调整Gitlab Runner的容器运行时

确保Runner使用最新的容器运行时:

  • 编辑/etc/gitlab-runner/config.toml,修改[runners.docker]下的runtime设置:
    [runners.docker]
      runtime = "crun"
    
  • 重启Gitlab Runner服务:
    gitlab-runner restart
    

内容的提问来源于stack exchange,提问作者OhJohnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:36:02