通过Gitlab Webhook触发GCP Cloud Build时Dockerfile找不到求助
问题排查与解决
核心原因
通过GitLab Webhook触发Cloud Build时,Cloud Build会将GitLab仓库的代码拉取到/workspace/gitlab目录下,而非默认的/workspace根目录。你的Docker build步骤使用.作为上下文路径,会在/workspace下寻找Dockerfile,自然找不到实际位于/workspace/gitlab里的文件。
解决方案
方案1:修改Docker build的上下文路径
直接将docker build的目标路径改为./gitlab/,指向代码实际存放的目录:
- name: gcr.io/cloud-builders/docker args: - build - '-t' - '${_ARTIFACT_REPO}' - ./gitlab/
方案2:提前同步代码到/workspace根目录
在docker build步骤前添加一个复制步骤,将gitlab目录下的代码同步到/workspace:
- name: 'gcr.io/cloud-builders/gcloud' args: ['bash', '-c', 'cp -r /workspace/gitlab/* /workspace/'] - name: gcr.io/cloud-builders/docker args: - build - '-t' - '${_ARTIFACT_REPO}' - .
验证方法
查看Cloud Build的构建日志,搜索"Cloning repository"相关内容,确认代码被拉取到的具体路径,以此验证上述判断是否正确。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

