我的问题是如何在构建管道中根据拉取请求/分支使用不同的环境构建一个Docker。我使用.net6和Key Vault + Variable Groups。据我所知,当Docker构建映像时,他使用appsetings.json。如果我不想将prod设置传递给此文件,而我想覆盖或以某种方式将变量组中的设置传递给Docker文件,或者是否有其他方法可以做到这一点?
trigger:
- main
- test
- development
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
latest
1条答案
按热度按时间0ve6wy6x1#
您可以有条件地为YAML管道中的变量赋值。
例如,假设有4个Docker注册表服务连接到4个不同的Docker注册表(
Registry01
、Registry02
、Registry03
和Registry04
),以及Git存储库中的3个分支(main
、test
和development
)。目标是:
main
分支运行构建时,需要构建Docker映像并将其推送到Registry01
**。test
分支运行构建时,需要构建Docker映像并将其推送到Registry02
**。development
分支运行构建时,需要构建Docker映像并将其推送到Registry03
**。Registry04
**。我们可以如下配置YAML管道:
对于Docker任务上的其他输入参数(
repository
、Dockerfile
、tags
等)的值,可以使用相同的方法有条件地分配其值。还可以有条件地分配要用于运行生成作业的代理的vmImage。比如说。