首页 > 解决方案 > 从构建代理上运行的 docker 映像连接到 Azure Artifacts Feed

问题描述

我的 azure-pipelines.yml 文件

  jobs:
  - job: linux_bionic
    displayName: 'Linux (Bionic)'
    pool:
      vmImage: 'Ubuntu 16.04'
    steps:
    - template: ci/docker.yml
      parameters:
        imageName: 'microsoft/dotnet:2.1-sdk-bionic'
        environmentVariables: |
          BUILD_CONFIG=Release

我的 ci/docker.yml

steps:
- bash: chmod 755 ./ci/*.sh
  displayName: 'Ensure build script permissions'

- task: docker@0
  displayName: Build
  inputs:
    action: 'Run an image'
    imageName: ${{ parameters.imageName }}
    volumes: |
      $(Build.SourcesDirectory):/src
      $(Build.BinariesDirectory):/build
    envVars: ${{ parameters.environmentVariables }}
    workDir: '/src'
    containerCommand: '/src/ci/build.sh'
    detached: false

在我的 build.sh 我有dotnet build命令女巫应该从 nuget.org 以及我的私人 azure 工件提要中恢复包

<add key="MyFeed" 
value="https://pkgs.dev.azure.com/MyOrg/_packaging/MyFeed/nuget/v3/index.json" />

这是天蓝色管道日志的一部分

Microsoft (R) Build Engine version 15.8.166+gd4e8d81a88 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for /src/src/MyProj/MyProj.csproj...
/usr/share/dotnet/sdk/2.1.402/NuGet.targets(114,5): error : Unable to load the service index for source https://pkgs.dev.azure.com/MyOrg/_packaging/MyFeed/nuget/v3/index.json. [/src/MyProj.sln]
/usr/share/dotnet/sdk/2.1.402/NuGet.targets(114,5): error :   Response status code does not indicate success: 401 (Unauthorized). [/src/MyProj.sln]

Build FAILED.

我认为可以在 nuget.config 中添加提要的 api 键,我在全局 nuget.config 中有它,但我不想在源代码管理中检查它。

有什么方法可以从 docker 映像中访问提要,就像从构建代理中访问它一样?

标签: docker.net-corenugetazure-pipelinesazure-artifacts

解决方案


你可以使用容器中的Azure Artifacts Credential ProviderVSS_NUGET_EXTERNAL_FEED_ENDPOINTS和环境变量来传递构建的访问令牌。


推荐阅读