【问题标题】:gcloud automatic redeployment Golang appgcloud 自动重新部署 Golang 应用
【发布时间】:2018-02-16 15:43:30
【问题描述】:

我有一个在 Google Cloud App Engine 上运行的 Golang 应用程序,我可以使用“gcloud app deploy”手动更新它,但我不知道如何安排自动重新部署。我假设我必须使用 cron.yaml,但后来我对使用什么 url 感到困惑。基本上它只是一个带有一个主 index.html 页面的 Web 应用程序,内容不断变化,我想安排自动重新部署......我该怎么做?

【问题讨论】:

  • 更多细节:实际的应用程序代码没有改变,它只是发出 HTTP 请求,从 JSON Web API 中提取数据,并填充一个 HTML 模板,其中唯一的 http.HandleFunc("/" , func(w http.ResponseWriter, r *http.Request) 服务到 http.ListenAndServe(":8080", nil)。我仍在寻找一种方法,每次我都不必执行“gcloud app serve”想要更新索引 HTML 页面的内容,我认为它必须与使用 cron.yaml 设置 cron 作业有关,但我还不能让它工作....

标签: go deployment cron gcloud


【解决方案1】:

如果您想在代码更改时自动重新部署您的应用,您需要所谓的 CI/CD(持续集成/部署)。 CI 所做的是,对于存储库的每个新提交,检查新代码并运行测试脚本。如果所有测试都通过(或者如果您根本没有任何测试),那么 CI 服务器可以将您的代码自动部署到 App Engine。

一个免费的(用于开源项目)CI 提供者是Travis CI。要配置它,您需要使用 Travis 创建一个帐户,并在存储库的根目录中创建一个名为 .travis.yml 的文件。要设置 App Engine 部署,您可以关注 this guide 设置服务帐户并将加密文件添加到您的存储库中。每当您将代码推送到存储库中的某个分支(默认为master)时,它将从其服务器上的容器中运行gcloud app deploy

另一个完全避免设置 CI 的选项是简单地更改您的应用程序以在收到请求时生成页面的动态部分。阅读html/template 的文档将为您指明正确的方向。

【讨论】:

  • 正如 Wgoodall01 评论的那样,持续集成似乎与 GAE 兼容。我发现他们甚至有自己的指南,叫做"Continuous Delivery with Travis CI"
  • 这个答案对你有用吗@Thomas Jaensch?
猜你喜欢
  • 1970-01-01
  • 2016-06-04
  • 2017-04-10
  • 2017-01-24
  • 1970-01-01
  • 2018-02-23
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
相关资源
最近更新 更多