gpt4 book ai didi

docker - Azure管道从错误的Dockerfile构建镜像

转载 作者:行者123 更新时间:2023-12-02 19:52:18 25 4
gpt4 key购买 nike

我的项目包含2个Dockerfile,一个用于后端,一个用于模拟数据库。我在Azure中使用以下脚本建立了构建管道:

trigger:
- master

pool:
vmImage: 'windows-latest'

variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'

- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'

- task: CopyFiles@2
inputs:
SourceFolder: './MyProject'
Contents: '**'
TargetFolder: '$(build.artifactStagingDirectory)'
flattenFolders: true

- task: CopyFiles@2
inputs:
SourceFolder: './MyProject/Database'
Contents: '**'
TargetFolder: '$(build.artifactStagingDirectory)/Database'
flattenFolders: true

- task: ArchiveFiles@2
displayName: "Archive files"
inputs:
rootFolderOrFile: "$(build.artifactStagingDirectory)"
includeRootFolder: true
archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"

- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(build.artifactStagingDirectory)'
ArtifactName: 'backend'

我在其中放置了2个CopyFiles步骤,因为我有2个Dockerfile,一个在/ MyProject中作为后端,一个在/ MyProject / Database中用于模拟数据库。这样,稍后我可以在发布管道中在两个Dockerfile中进行选择。在下面的图片中,我在后端文件夹中标记了一个Dockerfile,您可以在Database文件夹中看到另一个Dockerfile。

enter image description here

问题是,即使我选择放置在后端文件夹中的Dockerfile作为发布步骤,但管道仍将Dockerfile用于数据库。大概是因为这是它遇到的第一个Dockerfile,即使它位于我指定的子目录中。如何使管道使用正确的Dockerfile?

最佳答案

发现了问题:设置flattenFolders:true确实使子目录中的Dockerfile覆盖了顶层Dockerfile。通过将其设置为false,我得到了完整的文件夹结构,并可以选择正确的Dockerfile。

关于docker - Azure管道从错误的Dockerfile构建镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59931463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com