我在他们的新";无服务器远征";这是一个非常棒和整洁的系列。强烈推荐。
这是我第一次尝试GCP,但一切都执行得很完美,直到我出现一个奇怪的错误:
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: step exited with non-zero status: 1
----------------------------------------------------------------------------------------------------------------------
ERROR: (gcloud.builds.submit) build 0caec01a-ba4e-4a58-afd3-5f646258ae72 completed with status "FAILURE"
Deploying container to Cloud Run service [test-api-service] in project [test-api] region [us-central1]
X Deploying... Image 'gcr.io/test-api/test-api-service' not found.
X Creating Revision... Image 'gcr.io/test-api/test-api-service' not found.
. Routing traffic...
✓ Setting IAM Policy...
Deployment failed
ERROR: (gcloud.run.deploy) Image 'gcr.io/test-api/test-api-service' not found.
执行部署shell脚本时:
GOOGLE_PROJECT_ID=test-api
CLOUD_RUN_SERVICE=test-api-service
INSTANCE_CONNECTION_NAME=test-api:us-central-1:test-sql-instance
DB_USER=root
DB_PASS=testpw
DB_NAME=testdb
gcloud builds submit --tag gcr.io/$GOOGLE_PROJECT_ID/$CLOUD_RUN_SERVICE
--project=$GOOGLE_PROJECT_ID
gcloud run deploy $CLOUD_RUN_SERVICE
--image gcr.io/$GOOGLE_PROJECT_ID/$CLOUD_RUN_SERVICE
--add-cloudsql-instances $INSTANCE_CONNECTION_NAME
--update-env-vars INSTANCE_CONNECTION_NAME=$INSTANCE_CONNECTION_NAME,DB_PASS=$DB_PASS,DB_NAME=$DB_NAME,DB_USER=$DB_USER
--platform managed
--region us-central1
--allow-unauthenticated
--project=$GOOGLE_PROJECT_ID
请注意,这是视频中技术演示者使用的部署脚本。我们正在使用node.js和MySQL构建一个REST API。我环顾四周,似乎真的找不到解决这个问题的办法。也许一些外界的帮助可能会为解决这一问题提供一些可能的解决方案。
提前谢谢!
正如评论中提到的@JohnHanley和@guillaumeblaquiere,该问题是由Dockerfile引起的。
虽然这个文件是必需的,但您所学习的教程并没有涵盖Dockerfile结构。
您可以使用Node.js的容器化指南来完成您的配置。