簡體   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