【问题标题】:Continuous Delivery on GCP Compute EngineGCP Compute Engine 上的持续交付
【发布时间】:2018-01-11 12:22:40
【问题描述】:

我在 GitLab 上有一个管道,在每次推送时都会触发构建,如果所有测试都通过主分支,则会构建一个 Docker 映像并发布到 GitLab 注册表。

在 Google Cloud Platform 上,我有一个 Compute Engine (VM) 实例,上面安装了 docker 映像(在 GCP 上,我还在 Google Container Registry 中发布了一个 docker 映像 - 我现在是手动完成的)。

我想在 GCP 计算机引擎实例上自动更新 Docker 映像的步骤。

  1. 即使我将删除 Compute Engine 实例并创建其他实例,我应该如何从 GCP 访问 GitLab 注册表?

  2. 如何更新在 Compute Engine 中运行的 docker 映像,而无需重新启动 VM 且未连接到 SSH? (当 Docker 映像发布到注册表时,我希望能够从 GitLab 触发和更新)。

注意:我目前还没有准备好在我的项目中使用 Kubernetes。

谢谢。

【问题讨论】:

  • 也许这个链接会帮助你medium.com/evenbit/…
  • 感谢您的这篇文章,我正在使用 Compute Engine 和 Docker,并且对如何在 gitlab 上安装 google-cloud-sdk 有了一些想法。

标签: docker gitlab google-compute-engine


【解决方案1】:

尝试将脚本/命令(需要访问 GitLab 图像)作为文件存储在 Google Cloud bucket 中。将该文件设置为可执行文件并通过相应的虚拟机运行它作为一种解决方法。确保您在存储桶上也提供了相应的access control

您还可以查看 GitLab 容器注册表上的这篇 administration 文章以进行构建和推送 images。根据this 文档,GitLab 还提供容器注册表管理面板,有助于管理其项目中的图像。

您还可以使用脚本/命令更新可执行文件下的 docker 镜像,并在 crontab 的帮助下运行它,最终可能会更新 VM 中的 docker 镜像。您还需要包含触发 GitLab 更新所需的命令。

gitlab 与 GCP 平台的集成目前不可用。但是,有一个正在进行的Feature Request 用于将 GitLab 存储库与 Google Container builder 连接起来。如果您愿意,可以检查 FR 并添加 cmets。

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2021-04-20
    相关资源
    最近更新 更多