Azure Pipelines报错找不到Dockerfile,调整路径仍未解决
Azure Pipelines Dockerfile 找不到问题排查与解决
问题详情
报错:未找到匹配/home/vscode/azure-pipelines/_work/1/s/**/Dockerfile的Dockerfile
已在流水线中添加Docker安装任务解决了之前的问题,但当前出现Dockerfile路径匹配失败的错误,尝试调整路径后问题仍存在。
相关流水线配置
- task: Docker@2 displayName : Login to Docker Hub inputs: command: login containerRegistry: Docker_Hub #fypproject #dockerRegistryServiceConnection1 # - task: DockerInstaller@0 displayName: Docker Installer inputs: dockerVersion: 17.09.0-ce releaseType: stable - task: Docker@2 displayName: Build and Push inputs: command: buildAndPush repository: max/newimage # username/contosoRepository for DockerHub #$dockerfile: /workspaces/FYP_Project/.devcontainer/Dockerfile dockerfile: /workspaces/FYP_Project/.devcontainer/Dockerfile #env: # PATH: /vscode/bin/linux-x64/695af097c7bd098fbf017ce3ac85e09bbc5dda06/bin/remote-cli:/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:/usr/local/dotnet/current:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/vscode/.dotnet/tools:/home/vscode/.local/bin #PATH: /workspaces/FYP_Project/.devcontainer/Dockerfile
仓库结构说明
Dockerfile位于仓库根目录下的.devcontainer文件夹内。
解决方法
核心问题
你配置的/workspaces/FYP_Project/.devcontainer/Dockerfile是本地开发环境的绝对路径,但Azure Pipelines的默认工作目录是/home/vscode/azure-pipelines/_work/1/s/(对应预定义变量$(Build.SourcesDirectory)),流水线会在这个目录下查找Dockerfile,所以绝对路径不匹配。
修正步骤
使用相对路径(推荐)
将dockerfile参数改为相对路径,直接从仓库根目录开始定位:dockerfile: .devcontainer/Dockerfile使用流水线预定义变量
用预定义变量明确指定工作目录下的路径,避免路径歧义:dockerfile: $(Build.SourcesDirectory)/.devcontainer/Dockerfile验证仓库文件
确认.devcontainer/Dockerfile已被推送到Git仓库,没有被.gitignore规则排除,流水线拉取代码时能获取到该文件。
修正后的Build and Push任务示例
- task: Docker@2 displayName: Build and Push inputs: command: buildAndPush repository: max/newimage dockerfile: .devcontainer/Dockerfile
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

