Help us learn about your current experience with the documentation. Take the survey.

交互式 Web 终端

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

交互式 Web 终端让用户可以在 GitLab 中访问终端,用于运行 CI 流水线的一次性命令。你可以把它想象成一种通过 SSH 进行调试的方法,但直接在作业页面上完成。因为这会给用户提供对部署了 GitLab Runner 的环境的 shell 访问权限,所以采取了一些安全预防措施来保护用户。

GitLab.com 上的实例运行器不提供交互式 Web 终端。请关注 此问题以了解添加支持的进展。对于在 GitLab.com 上托管的组和项目,当使用自己的组或项目运行器时,交互式 Web 终端可用。

配置

要使交互式 Web 终端正常工作,需要配置两件事:

  • 运行器需要正确配置 [session_server]
  • 如果你的 GitLab 实例使用了反向代理,需要 启用 Web 终端

Helm chart 的部分支持

gitlab-runner Helm chart 对交互式 Web 终端提供部分支持。在以下情况下启用:

  • 副本数量为一个
  • 使用 loadBalancer 服务

有关修复这些限制的支持正在跟踪以下问题:

调试正在运行的作业

并非所有执行器都 受支持

docker 执行器在构建脚本完成后不会继续运行。此时,终端会自动断开连接,不会等待用户完成操作。请关注 此问题以了解改进此行为的更新。

有时,当作业正在运行时,事情并不会按预期进行。如果能有一个 shell 来帮助调试会很有用。当作业运行时,右侧面板会显示一个 debug 按钮( external-link ),用于打开当前作业的终端。只有启动作业的人才能调试它。

作业运行时终端可用的示例

选择后,会在新标签页中打开终端页面,你可以在这里访问终端并像在标准 shell 中一样输入命令。

在作业终端页面上执行命令

如果作业完成后你的终端仍然打开,作业不会在配置的 [session_server].session_timeout 持续时间后完成。为避免这种情况,你可以在作业完成后关闭终端。

作业完成但终端会话仍处于活动状态