gpt4 book ai didi

docker - Bazel - 在 Monorepo 中构建、推送、部署 Docker 容器到 Kubernetes

转载 作者:行者123 更新时间:2023-12-04 14:53:38 25 4
gpt4 key购买 nike

我有一个带有一些后端(Node.js)和前端(Angular)服务的monorepo。目前我的部署过程如下所示:

  • 检查测试是否通过
  • 为我的服务构建 docker 镜像
  • 将 docker 镜像推送到容器注册表
  • 使用 GKE 将更改应用到 Kubernetes 集群 ( kubectl )

  • 我的目标是在 Bazel 的帮助下自动化所有这些步骤。和 Cloud Build .但我真的很难开始使用 Bazel:

    为了使它工作,我可能需要添加一个 WORKSPACE包含我的外部依赖项和多个 BUILD 的文件我自己的包/服务的文件?我需要实际实现方面的帮助:
  • 如何使用 Bazel 构建我的 Dockerfile?
  • 如何将这些图像推送到注册表(最好是 GCR )?
  • 如何自动将更改应用到 Google Kubernetes Engine?
  • 如何将此工具链与 Google Cloud Build 集成?

  • 有关该项目的更多信息

    I've put together a tiny sample monorepo to showcase my use-case



    结构
    ├── kubernetes
    ├── packages
    │ ├── enums
    │ ├── utils
    └── services
    ├── gateway

    一般的
  • Gateway服务取决于 enumsutils
  • 一切都是用 typescript 写的
  • 每个服务/包都是一个节点模块
  • 有一个Dockerfile里面gateway我要建的文件夹
  • Kubernetes 配置位于 kubernetes文件夹。
  • 请注意,我不想发布任何 npm包!
  • 最佳答案

    Flo,您是否考虑过使用 terraform 和 makefile 来自动构建集群?
    在我最近的项目中,我使用 make & terraform 端到端地自动化基础设施。本质上,这种方法构建整个集群,在 3 - 5 分钟内使用一个命令构建和部署整个项目。取决于给定日期 gcp 的速度。
    有一个谷歌示例项目显示了这个想法,尽管 terraform 配置已过时,需要用符合当前 0.13/0/14 语法的配置替换。
    https://github.com/GoogleCloudPlatform/gke-bazel-demo#build--deploy-with-bazel
    启用单命令端到端自动化的makefile:
    https://github.com/GoogleCloudPlatform/gke-bazel-demo/blob/master/Makefile
    同样,为您的项目替换或自定义脚本;实际上,我又写了两个脚本,一个用于检查/安装客户端要求,即 git/kubctl 和 gcloud,另一个用于检查或配置和验证 gcloud,以防它尚未配置和验证。从那里,terraform 脚本接管并构建整个集群,一旦完成,通常的自动部署就会启动。
    我发现对 terraform 和 bazel 进行分层以实现端到端自动化的想法非常棒。

    关于docker - Bazel - 在 Monorepo 中构建、推送、部署 Docker 容器到 Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779568/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com