Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法自动替换发布管道中的docker标记 我的构建管道在AzureDevPSServices中,发布管道在AzureDevPSServer中_Docker_Kubernetes_Azure Devops_Azure Pipelines Release Pipeline_Azure Devops Server 2019 - Fatal编程技术网

无法自动替换发布管道中的docker标记 我的构建管道在AzureDevPSServices中,发布管道在AzureDevPSServer中

无法自动替换发布管道中的docker标记 我的构建管道在AzureDevPSServices中,发布管道在AzureDevPSServer中,docker,kubernetes,azure-devops,azure-pipelines-release-pipeline,azure-devops-server-2019,Docker,Kubernetes,Azure Devops,Azure Pipelines Release Pipeline,Azure Devops Server 2019,构建管道正在创建docker映像并保存在映像azure容器注册表中,工作正常 发布管道正在AKS集群中使用帮助部署对象部署docker映像 但我无法动态替换部署文件中的图像标记 我要寻找的是,一旦构建管道完成,发布管道应该自动触发,并且应该自动替换docker标记 我也尝试过使用替换令牌任务,但它不起作用 根据您的要求,您可以参考以下过程自动触发Azure Devops服务器上的版本,并用变量替换标记 我的构建管道在AzureDevPSServices中,发布管道在AzureDevPSSer

构建管道正在创建docker映像并保存在映像azure容器注册表中,工作正常

发布管道正在AKS集群中使用帮助部署对象部署docker映像

但我无法动态替换部署文件中的图像标记

我要寻找的是,一旦构建管道完成,发布管道应该自动触发,并且应该自动替换docker标记

我也尝试过使用替换令牌任务,但它不起作用


根据您的要求,您可以参考以下过程自动触发Azure Devops服务器上的版本,并用变量替换标记

我的构建管道在AzureDevPSServices中,发布管道在AzureDevPSServer中

要在Azure Devops服务器中自动触发发布,您可以在其他票证中引用

替换发布管道中的docker标记

据我所知,替换令牌任务可以满足您的要求

从docker标记格式来看,这似乎是Azure Devops服务构建管道中的
$(build.buildnumber)
变量

  • 您可以在发布管道中设置变量,并在发布时设置
    setable
    选项
  • 在部署清单中,可以使用以下格式设置映像:
    image:mycontainerregistry/myapp:{Version}

  • 使用替换令牌任务并选择目标文件

  • 当您使用RESTAPI触发发布时,可以同时将变量传递到发布管道
  • 以下是示例:

    $token = "PAT"
    
    $url = "https://{instance}/{collection}/{project}/_apis/release/releases?api-version=5.0"
    
    $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
    
    $JSON = @'
    {
       "definitionId": ID,
      "variables": {
           "Version": {
             "value": "$(Build.buildnumber)"
           }
     
       }
    }
    '@
         
    $response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON
    

    你们提供了哪些投入?部署清单的工作原理是什么?你说的“不起作用”是什么意思?您收到错误消息了吗?部署清单正在运行,正在拾取我指定的相同映像示例映像:mycontainerregistry/myapp:20210221.3