Google Cloud自动部署失败:cloudbuild.yaml致Docker构建出错
解决Cloud Build中Docker构建找不到Dockerfile的问题
你遇到的这个错误核心原因是:Git克隆步骤会把代码仓库下载到/workspace/{你的仓库名称}目录下,但第二步Docker构建默认在/workspace根目录执行,这里自然找不到Dockerfile,所以抛出了lstat /workspace/Dockerfile: no such file or directory的错误。
这里有两种简单的解决方法,任选其一即可:
方法一:指定Docker构建的工作目录
在Docker构建步骤中添加dir参数,指向Git克隆后的仓库目录,让Docker到正确的目录下去找Dockerfile:
修改后的cloudbuild.yaml如下:
steps: - name: 'gcr.io/cloud-builders/git' args: ['clone', 'https://github.com/{PATH_TO_MY_REPO}'] - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/{MY_PROJECT_ID}/appengine', '.'] dir: '{你的仓库名称}' # 替换成你实际的仓库名称,比如如果仓库叫my-flask-app,就填my-flask-app
方法二:直接克隆到当前工作目录
修改Git克隆命令,把代码直接克隆到/workspace根目录,这样Docker构建时就能直接找到根目录下的Dockerfile了:
修改后的cloudbuild.yaml如下:
steps: - name: 'gcr.io/cloud-builders/git' args: ['clone', 'https://github.com/{PATH_TO_MY_REPO}', '.'] # 末尾的.表示克隆到当前目录 - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/{MY_PROJECT_ID}/appengine', '.']
额外注意
不管用哪种方法,都要确保你的Git仓库根目录确实存在Dockerfile,这是构建成功的前提哦。
内容的提问来源于stack exchange,提问作者Arhire Ionut
相关产品推荐
相关产品推荐

