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

使用Jib Maven插件推送镜像至Artifactory遇媒体类型错误求助

问题分析:Jib推送镜像至JFrog Artifactory报错Unknown mediaType

错误信息

[ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:3.1.1:build (default-cli) on project backend: Unknown mediaType: application/vnd.oci.image.index.v1+json.

用户CI/CD配置

trigger:
  branches:
    include:
      - jfrogtest
pool:
  vmImage: 'ubuntu-latest'  # You can use other images if needed
variables:
  - group: artifactory
  - name: dockerRegistryServiceConnection
    value: 'Artifactory-docker'
  - name: containerRegistry
    value: 'danfoss-docker.jfrog.io'
  - name: imageRepository
    value: 'plus1connect-backend-service-ui'
  - group: New-Portal-Backend
  - name: imagePullSecret
    value: 'artifactory'
steps:
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '11'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: 'PreInstalled'
 - script: |
    mvn clean install -Dmaven.test.skip
  displayName: 'Maven Build'
 - script: |
    mvn -X compile jib:build -Dmaven.test.skip -Djib.to.auth.username=$(artifactory.user) -Djib.to.auth.password=$(artifactory.password) -Djib.to.image=$(docker-server-image-name):$(image-tag) -Djib.container.format=Docker
  workingDirectory: '$(System.DefaultWorkingDirectory)/backend'
 - task: KubernetesManifest@0
  displayName: Create imagePullSecret
  inputs:
    action: createSecret
    secretName: $(imagePullSecret)
    dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
    kubernetesServiceConnection: dev.plus1connect.aks
 - task: KubernetesManifest@0
  inputs:
    action: deploy
    kubernetesServiceConnection: 'dev.plus1connect.aks'
    namespace: 'default'
    manifests: |
      $(Build.SourcesDirectory)/.manifests/*.yml

可能的问题原因及解决方案

  • Jib版本兼容缺陷:当前使用的Jib 3.1.1版本对OCI镜像索引的支持不完善,无法识别application/vnd.oci.image.index.v1+json媒体类型。建议升级Jib Maven插件至3.3.0及以上版本,后续版本已修复该兼容问题。
  • 仓库格式配置冲突:检查JFrog Artifactory中的Docker仓库是否启用了OCI支持。若仓库同时兼容Docker和OCI格式,旧版Jib无法正确处理返回的OCI索引内容。可尝试在仓库设置中仅启用Docker V2格式,或升级Jib版本适配OCI格式。
  • 容器格式参数矛盾:命令中指定了-Djib.container.format=Docker强制使用Docker格式,但如果目标仓库默认返回OCI格式索引,会导致格式不兼容。可移除该参数,让Jib自动适配仓库支持的格式。
  • 仓库地址或认证问题:确认$(docker-server-image-name)变量指向的仓库地址是否正确对应JFrog的Docker仓库端点,确保推送路径与仓库类型匹配,避免请求到不兼容的仓库接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:42:29