【问题标题】:Github Actions cloud hosted runner, Container within Container?Github Actions 云托管运行器,容器中的容器?
【发布时间】:2021-10-21 09:52:04
【问题描述】:

我目前在一家企业工作,并被要求使用 GitHub Actions 而不是 ADO/Azure Pipelines 或 Jenkins。

我的目标是创建一个自助服务模型,其中我们有一个基本的 CI/CD 框架,团队可以将其用作他们管道的起点。它具有所有的安全性、质量和治理,使开发人员的生活更轻松,并减少重复工作。因此,可重用的工作流是必须的,并且能够从构建代理/运行器/工作者启动容器是必须的。

让我阐述一下我对 GitHub Actions 情况的理解:

  1. Github Actions 可以做两件事:
    • 启动容器
    • 运行 JavaScript
  2. 在容器中运行容器被认为是个坏主意,事实上,对它的支持在不久的将来就会消失。
  3. GitHub Hosted Runners 在容器中运行。
  4. 直到 2021 年第三季度,Github 操作才支持可重用工作流

如果我的理解是正确的,那我就死定了:

  • 除非我想编写 JavaScript,否则 GitHub 托管的 Actions 运行器在我的情况下基本上没用。
  • 看来我回到了 VM 业务,可以自行托管运行程序,这样我就可以使用它来托管容器,而不是在 Docker 中运行 Docker
  • 在 GitHub 开始实施可重用工作流之前,我为我的开发团队创建通用框架的能力受到了一定程度的削弱。 (我认为这是最大的假设,最有可能通过变通方法被推翻)

在我推回使用不同的 CI 工具之前,请有人告诉我我在这里缺少什么或哪些变通方法使这个可行。

【问题讨论】:

  • 你在哪里找到关于Reusable Workflows until Q3 of 2021的信息?
  • @KrzysztofMadej,可重用的工作流功能在这里:link 路线图,日期在这里:link 从理论上讲,第三季度的交付物会在大约 40 天后的 9 月 30 日之前完成,但随后我们必须解决错误,所以我不指望可重用工作流在 2022 年第一季度的某个时候才能投入生产。
  • 您能否详细说明几件事 - 通过可重用的工作流程,您是指模板或具有指向具有可重用工作流程的某个集中式仓库的仓库链接吗? - 您可以在 github 工作流程中运行您想要的任何语言。例如去,节点,bash。这几乎完全取决于您在工作流程开始时安装的软件包。 - 您可以在工作流中构建/运行容器而不会出现问题。我一直在 ubuntu 上使用运行,它运行良好。如果您谈论的是在工作流中运行容器类型的问题,那么在托管运行器中会变得更加复杂。
  • @EdwardRomero,是的,“可重用工作流程”功能让您可以将整个工作流程称为操作。这意味着您不必复制/粘贴您将在每个管道中执行的一组步骤(例如扫描、构建、单元测试),您只需使用管道实例中的操作,传递您的参数,然后您'在做生意。我的目标是创建一个可重复使用的工作流程,它可以执行六次操作,其中许多操作都需要自己的容器。这意味着在 Github 托管的运行器上的容器中的容器。

标签: docker continuous-integration github-actions


【解决方案1】:

经过进一步的研究和一些测试,我的假设得到了证实:

  1. 在虚拟机上使用自托管运行器是解决“容器中容器”问题的最直接方法。它还解决了在没有将每个 i.p. GitHub 托管的跑步者使用的范围,这是大多数企业 InfoSec 团队不愿意做的事情。

  2. 这个问题有第二个问题,“如何在 GitHub Actions 中为企业创建可重用的 CI/CD 框架”,这对我来说是不好的形式。最直接的选择是 a) 等到可重用工作流完全实施并制定出来 b) 如果您迫不及待,请使用更成熟的编排工具,例如 Jenkins、TeamCity 或 Azure DevOps。

【讨论】:

    【解决方案2】:

    有几点需要注意:

    1. 您或许可以使用create your own GitHub actions 来分享行为、如何致电here 的信息。
    2. 对于自托管,docker-github-actions-runner 是一个很好的起点。

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2020-07-22
      • 2021-01-29
      • 2022-07-14
      • 2020-09-14
      • 1970-01-01
      • 2022-08-15
      • 2014-08-28
      • 2020-01-01
      相关资源
      最近更新 更多