【问题标题】:How to connect Github to Google Cloud Platform?如何将 Github 连接到谷歌云平台?
【发布时间】:2020-12-27 12:41:42
【问题描述】:

我是云服务和 docker 的新手。

我有一个使用 Python 的 aiogram 库开发的电报机器人。我可以使用命令 python3.8 app.py 启动它。如果没有发生错误,它将永远运行。

另外,我使用一个简单的 sqlite3 文件作为数据库存储 (db.db),当我更新我的源代码时不需要更改它。

我在 Github 存储库中托管我的代码,我希望 GCP 在我提交到 master 时自动更新我的程序。

两个问题。

  1. 是否可以在没有 Docker 的情况下自动更新源代码? (我在 Google Cloud Platform VM Instance 上托管我的程序)
  2. 如果不是,如果 GCP 只会在我提交时构建一个新容器,我该如何从新容器中删除旧容器?

【问题讨论】:

  • 查看 Cloud Build,遵循一些教程并开始使用。您可以在 Github 中通过提交触发构建,然后在构建中执行您想要的操作,例如将文件复制到虚拟机中,或者使用新文件创建新虚拟机并删除旧文件,...要求最后构建一个容器!然后,带着你的阻碍问题回来!
  • 我可以推荐使用 Github Actions。为 GCP 创建一个具有足够范围的 api 密钥,并将其添加到您的 Github 存储库的机密中。然后设置一个动作(有很多例子和很好的文档)。您应该使用发布分支并设置操作以触发对发布分支的提交(合并例如 master 到发布时的结果)。 GCP 还提供了如何使用 API 做你想做的事的文档。
  • 如果您发现一些有用的答案,请考虑支持/接受它,谢谢!

标签: docker github google-cloud-platform continuous-integration devops


【解决方案1】:

正如@guillaume blaquiere 所说,Google Cloud Build 是一个不错的选择。

Cloud Build 提供了一个Cloud Build GitHub app,允许您在每次将新提交推送到 GitHub 时自动构建代码。

考虑到每天前 120 分钟的构建时间是免费的;超出此阈值的构建将向您收费。有关更多信息,请参阅 Pricing 页面,如果您使用 Dockerfile 构建并将构建的镜像存储在 Container Registry 中,您需要为 Docker 镜像使用的存储和网络出口付费。

您可以看到以下guide,它展示了如何安装 Google Cloud Build 应用程序,并将帮助您将 GitHub 存储库与您的 Cloud 项目连接起来并设置持续集成。

此外,我建议您查看GitHub App triggers,它使您能够自动调用基于 Git 推送和拉取请求的构建,并在 GitHub 和 Cloud Console 上查看您的构建结果。

希望这些信息对您有用。

【讨论】:

    【解决方案2】:

    Github Actions 可用于触发您的 CI/CD 管道。如果您担心分钟和存储,可以尝试将您的代码托管在Gitlab

    关于你的第二个问题。是的,您可以在 CI/CD 流程中使用gcloud 命令来管理您的容器。我找不到删除旧容器的直接方法,但我认为您可以尝试一些方法:

    1. 使用特定值标记新容器映像,以便 新创建的容器镜像可以替换旧镜像 表示注册表中始终存在一个图像。
    2. 用时间戳值标记您的新容器映像,您可以 删除所有带有旧时间戳标记的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-17
      • 2017-04-11
      • 2022-01-10
      • 1970-01-01
      • 2021-10-05
      • 2020-06-02
      • 2019-06-15
      • 2018-01-15
      相关资源
      最近更新 更多