docker - 从构建代理上运行的 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 映像中访问提要,就像从构建代理中访问它一样?
解决方案
你可以使用容器中的Azure Artifacts Credential ProviderVSS_NUGET_EXTERNAL_FEED_ENDPOINTS
和环境变量来传递构建的访问令牌。
推荐阅读
- c# - 使用 c# & ASP.Net 从 firebase 检索数据
- apache-spark - Not able to read from GreenPlum using Spark Connector
- python - 我发现了一些奇怪的东西
- java - 如何从映射文件中读取 ASCII 字符并将它们存储到字符串中?
- symfony - 数据转换器与约束
- r - 如何跨第三级命名列表 rbind data.frames?
- excel - VBA-如果满足条件如何更改单元格范围内的值
- android - Android Studio - 在默认导航抽屉上禁用后退按钮
- wordpress - 谷歌云 WordPress DNS 混淆
- node.js - Discord.js - 检查列表机器人