Devops 将图像推送到 Artifactory 时出现问题

问题描述 投票:0回答:1

将图像推送到 Artifactory 时出现以下错误

[错误] 无法在项目后端执行目标 com.google.cloud.tools:jib-maven-plugin:3.1.1:build (default-cli): 未知 mediaType: application/vnd.oci.image.index.v1 +json.

当我尝试使用 maven 插件将 jib dockerized 的镜像推送到我组织的内部 Artifactory 时,出现以下错误。可能的原因是什么?

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

Maven 存储库是在 Artifactory 中创建的。

azure-devops devops artifactory
1个回答
1
投票

这是我构建图像并将其推送到 JFrog 的示例,供您参考。

  1. 设置
    pom.xml
    以使用 Jib 插件。
    <build>
        <plugins>
            ...
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>3.1.4</version>
                <configuration>
                    <to>
                        <image>${docker.image.prefix}/imagename:imagetag</image>
                        <auth>
                            <username>${env.ARTIFACTORY_USER}</username>
                            <password>${env.ARTIFACTORY_PASSWORD}</password>
                        </auth>
                    </to>
                </configuration>
            </plugin>

        </plugins>
    </build>

  1. 在 Azure 管道中设置环境变量并触发构建。
pool:
  vmImage: ubuntu-latest

variables:
  ARTIFACTORY_USER: $(artifactory.user)
  ARTIFACTORY_PASSWORD: $(artifactory.password)
  DOCKER_IMAGE_PREFIX: ***.jfrog.io/{repository name}

steps:
- script: |
    mvn -X compile jib:build  -Djib.to.image=$(DOCKER_IMAGE_PREFIX)/my-test-image:11-ubuntu -Djib.to.auth.username=$(ARTIFACTORY_USER) -Djib.to.auth.password=$(ARTIFACTORY_PASSWORD) -Djib.container.format=Docker
  workingDirectory: '$(Build.SourcesDirectory)/complete'
  1. 结果:镜像成功构建并发布到JFrog Artifactory。

    在 Azure Pipeline 日志中:

    enter image description here

    在 JFrog Artifactory 中:

    enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.