Azure DevOps Pipelines无法找到Dockerfile构建镜像求助
解决Azure DevOps Pipelines中Dockerfile找不到的问题
先验证代码检出是否正常
- 打开流水线运行日志,找到「Checkout」步骤(一般是第一个任务),检查:
- 仓库URL、拉取的分支/tag是否和预期一致
- 日志里有没有「Checking out revision xxx」的成功提示,以及是否列出了检出的文件列表
- 如果检出有问题:
- 核对流水线的服务连接是否有目标仓库的访问权限
- 检查分支过滤规则,有没有误设成只拉取特定文件,或是分支名称写错
确认Dockerfile的实际位置
- 本地克隆代码,到
apps/login-page目录下确认Dockerfile是否存在(注意Linux环境大小写敏感,别写错大小写) - 在Docker构建任务前加一个命令行任务,打印目录结构验证:
通过日志看这个目录下到底有没有Dockerfile,同时确认echo "当前工作目录: $(pwd)" ls -la $(Build.SourcesDirectory)/apps/login-page/$(Build.SourcesDirectory)变量指向的是不是代码检出的根目录
检查Docker构建任务的配置
- 别用绝对路径
/Dockerfile,流水线容器的根目录不是代码目录 - 用相对路径的话,直接写
apps/login-page/Dockerfile就行(默认工作目录是$(Build.SourcesDirectory)) - 如果任务设置了「自定义工作目录」,要把Dockerfile路径改成相对于这个目录的路径
特殊情况排查
- 如果代码用了子模块,要在Checkout步骤的高级设置里勾选「Checkout submodules」,确保子模块代码也拉取下来
- 如果Dockerfile是流水线动态生成的,先确认生成任务有没有成功执行,文件有没有写到正确路径
内容的提问来源于stack exchange,提问作者paritosh mishra
相关产品推荐
相关产品推荐

