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

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

将镜像推送到JFROG时出现以下错误

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

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

触发: 分支机构: 包括: -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 存储库是在 jfrog 中创建的。

java azure-devops devops jfrog
1个回答
0
投票

这是我构建图像并将其推送到 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 - 2024. All rights reserved.