cloudbuild.yaml指定Dockerfile路径为.仍提示找不到/workspace/Dockerfile怎么办
问题根因
Cloud Build执行构建任务时,会将你关联的代码仓库内容拉取到构建环境的/workspace目录作为默认工作目录。你在docker build命令中指定的.参数就是指代/workspace这个构建上下文路径,docker默认会在构建上下文根路径查找名为Dockerfile的文件,报错说明该路径下没有找到符合要求的文件。
排查与解决方案
- 确认Dockerfile与cloudbuild.yaml处于仓库同一级目录,且文件名严格为
Dockerfile(注意构建环境为Linux系统,文件名大小写敏感,dockerfile、DockerFile等命名都会识别失败) - 如果Dockerfile存放在子目录或使用自定义命名,需要新增
-f参数指定Dockerfile的实际相对路径,参考配置如下:
steps: - name: gcr.io/cloud-builders/docker args: - build - '-t' - gcr.io/$PROJECT_ID/$_API_NAME - '-f' - ./your-custom-path/Dockerfile # 替换为实际的Dockerfile相对路径 - . id: docker_build - name: gcr.io/cloud-builders/docker args: - push - gcr.io/$PROJECT_ID/$_API_NAME id: docker_push
- 检查项目根目录下的
.gitignore或.gcloudignore文件,确认没有配置忽略Dockerfile的规则,否则Dockerfile不会被同步到Cloud Build的工作目录中 - 确认你配置的Cloud Build触发规则的源代码路径范围正确,没有过滤掉Dockerfile所在的目录,且提交代码时Dockerfile已正常推送至对应触发分支/标签。
内容的提问来源于stack exchange,提问作者Efaz
相关产品推荐
相关产品推荐

