Azure 从monorepo构建多个映像,其中每个服务都有自己的Dockerfile
我正在尝试学习Azure DevOps管道和AKS。最终的目标是,但我要把它分成几个小部分,以便了解每个阶段的情况 因此,我目前的目标是 我使用的是一个非常基本的monorepo,它的结构非常简单:Azure 从monorepo构建多个映像,其中每个服务都有自己的Dockerfile,azure,docker,azure-devops,azure-container-service,Azure,Docker,Azure Devops,Azure Container Service,我正在尝试学习Azure DevOps管道和AKS。最终的目标是,但我要把它分成几个小部分,以便了解每个阶段的情况 因此,我目前的目标是 我使用的是一个非常基本的monorepo,它的结构非常简单: acr-test/ client/ Dockerfile db/ Dockerfile server/ Dockerfile 我想为应用程序的每个部分生成一个映像,以便生成arc测试客户端和arc测试服务器 当我在Azure DevOps中“创建管道”并让它构建
acr-test/
client/
Dockerfile
db/
Dockerfile
server/
Dockerfile
我想为应用程序的每个部分生成一个映像,以便生成arc测试客户端
和arc测试服务器
当我在Azure DevOps中“创建管道”并让它构建Azure管道时,当前发生的情况是,yml
只找到第一个Dockerfile
并将所有参数基于它,而忽略其他参数
有些我很好奇:
- 是否可以从单个azure pipelines.yml创建多个映像
- 每个
是否需要多个Dockerfile
.yml
- 我是否需要编写一个单独的
来分别构建和推送它们().sh
- 或者这在单一回购协议中根本不可能实现
azure pipelines.yml
.sh
脚本,但在azure pipelines.yml中只使用docker任务可能更容易
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository1)
dockerfile: $(dockerfilePath1)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag1)
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository2)
dockerfile: $(dockerfilePath2)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag2)
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository3)
dockerfile: $(dockerfilePath3)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag3)
或者可以在回购协议中有多个something.yml
,并为每个组件单独构建(更有意义,待定)
或者,对于您的文件结构,您可以将相同的yaml文件重用为模板,只需向其提供参数。这将减少代码重复,并允许更轻松地管理构建