【问题标题】:How to pass parameter value as a tag for new image?如何将参数值作为新图像的标签传递?
【发布时间】:2023-01-22 12:19:41
【问题描述】:

我需要强制用户更改他想要推送的图像的名称。 用户从 jfrog 中提取图像并更改它,然后他必须在将其上传到 jfrog 之前更改名称。

我设法设置了一个用户可以在 UI 中更改的参数,只需键入一些内容

parameters:
- name: "changeName"
  type: string
  default: "newname"

现在,在任务 docker push 中,这个值“new-name”必须添加到破折号之后的图像名称中: [基础图像名称]-新名称

我希望它看起来像这样:

      - task: JFrog.jfrog-artifactory-vsts-extension.artifactory-docker.ArtifactoryDocker@1
        displayName: 'Artifactory Docker Push'
        inputs:
          command: push
          artifactoryService: Jfrog
          targetRepo: 'docker'
          imageName: jfrog-base-image-name-newname

我做了一个 PowerShell 任务,它获取这个值并将它添加到基本图像名称中:

      - task: PowerShell@2
        inputs:
          targetType: 'inline'
          script: |
            $variable = '${{parameters.addName}}'
            Set-Variable -Name "newname" -Value "base-image-name-$variable"
            Get-Variable -Name "newname"
            Write-Host "$newname";

它返回正确的新名称“base-image-name-newname”

现在,如何将它实际发送到任务 docker push?这个任务应该怎么看?

【问题讨论】:

    标签: yaml azure-pipelines


    【解决方案1】:

    您是否尝试过将参数值直接添加到字符串基础 imageName 中?

    我没有运行 JFrog.jfrog-artifactory-vsts-extension.artifactory-docker.ArtifactoryDocker@1,但请尝试这样的操作:

    parameters:
      - name: changeName
        type: string
        default: newname
    
    #....etc...
    
         - task: JFrog.jfrog-artifactory-vsts-extension.artifactory-docker.ArtifactoryDocker@1
            displayName: 'Artifactory Docker Push'
            inputs:
              command: push
              artifactoryService: Jfrog
              targetRepo: 'docker'
              imageName: 'jfrog-base-image-name-${{ parameters.changeName }}'
    
    

    【讨论】:

      猜你喜欢
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2015-05-19
      • 2016-02-09
      • 2023-02-03
      • 1970-01-01
      • 2019-02-03
      相关资源
      最近更新 更多