![](/img/trans.png)
[英]unable to prepare context: unable to evaluate symlinks in Dockerfile path
[英]Deploy Google Cloud Function through Google Build error - unable to prepare context: unable to evaluate symlinks in Dockerfile path
我無法通過谷歌雲構建部署雲 function,收到錯誤:
BUILD
Already have image (with digest): gcr.io/cloud-builders/docker
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /workspace/Dockerfile: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1
我的 git 回購結構是
myrepo/cloudbuild.yaml
myrepo/new-user/index.js
myrepo/new-user/package.json
而我的cloudbuild.yaml如下
steps:
- name: 'gcr.io/cloud-builders/gcloud'
id: 'newUser'
args: ['functions',
'deploy',
'newUser',
'--source=./new-user/.',
'--trigger-event=providers/cloud.firestore/eventTypes/document.create',
'--trigger-resource=projects/myproject/databases/default/documents/userLocations/{user}',
'--runtime=nodejs8']
我認為對於雲功能,只需要 cloudbuild.yaml,這就是 Dockerfile 錯誤令人困惑的原因。
在命令行上運行以下命令可以正常工作。
gcloud functions deploy newUser --runtime=nodejs8 --trigger-event=providers/cloud.firestore/eventTypes/document.create --trigger-resource=projects/myproject/databases/default/documents/userLocations/{user} --source=./new-user/.
謝謝。
您的存儲庫沒有Dockerfile
,因此您不能使用不存在的Dockerfile
進行構建。
由於您正在嘗試制作一個需要 Docker 映像作為輸入的無服務器容器。
當我遇到這個問題時,我的問題與我在 monorepo 中工作的事實有關,並且必須重新定義 Cloud Build 將用於通過向我的 cloudbuild 文件添加dir
來查找 Dockerfile 的工作區位置。
我的 Cloud Build 觸發器設置為查找位於以下位置的 cloudbuild 文件: <root>/apps/<subfolder>/cloudbuild.yaml
CloudBuild 正確拾取了 cloudbuild 文件,構建將開始,但隨后出錯,因為未找到 Dockerfile。
YAML 示例:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
images:
- 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
- dir: 'apps/<subfolder>'
參考: 文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.