繁体   English   中英

gcloud app deploy 找不到 app.yaml 如果 go.mod 在不同的目录中

[英]gcloud app deploy cannot find app.yaml if go.mod is in a different directory

我已经无法将我的 Go 应用程序部署到 Google App Engine Flexible 一个星期了,尽管我不记得更改任何相关内容。 go.mod 和 go.sum 文件位于顶层目录,而 app.yaml 位于./cmd/app/中。

gcloud app deploy上的错误消息:

Services to deploy:

descriptor:                  [/Users/me/go/src/github.com/me/project/cmd/app/app.yaml]
source:                      [/Users/me/go/src/github.com/me/project/cmd/app]
target project:              [project-us-central1]
target service:              [default]
target version:              [20220118t234216]
target url:                  [https://project-us-central1.uc.r.appspot.com]
target service account:      [App Engine default service account]


Do you want to continue (Y/n)?  

Beginning deployment of service [default]...

ERROR: (gcloud.app.deploy) Required file is not uploaded: [app.yaml]. 
This file should not be added to an ignore list 
(https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore)

(当然,app.yaml 从未出现在忽略列表中。)

我尝试了以下方法:

  1. .app.yaml添加到.gcloudignore 文件
  2. 删除.gcloudignore文件
  3. gcloud config set gcloudignore/enabled false
  4. 等到新版本的gcloud发布(Google Cloud SKD 368.0.0)。

请注意,这既发生在我现有的 Go 应用程序上,该应用程序在过去几年(最后一次是 2021 年 11 月)成功部署了很多次,也发生在同一目录结构下新创建的简单 web 服务器应用程序上。 但是,如果我创建一个没有 Go 模块(go.mod,so.sum)的简单应用程序, gcloud app deploy将按预期工作。

我刚刚在发布此问题时找到了解决方法。 最初,这似乎有效:

gcloud app deploy --appyaml=app.yaml

但是,大约 30 分钟后,部署总是失败并出现以下错误:

Updating service [default] (this may take several minutes)...failed.                                                                                  
ERROR: (gcloud.app.deploy) Error Response: [13] The system encountered a fatal error

部署的版本似乎正在运行,但对于任何请求,它都会返回 HTTP 404。 在控制台中停止并重新启动版本后,它仍然不起作用:它主要返回 HTTP 502,有时返回 HTTP 503 和“服务错误 -27”。 我可以在日志中看到 /readiness_check 调用都以 503 失败, failReason:"null"

经过一番努力,事实证明问题在于./cmd/app/app.yaml文件与./go.mod./go.sum文件不在同一目录中。

我的解决方法是在调用gcloud app deploy之前暂时重命名go.mod ,然后在部署完成后将其移回。 这样,一切都会再次正常运行。

我的解决方法是将 go.mod 和 go.sum 复制到运行 gcloud app deploy 命令的工作目录。 这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM