返回

Linux 自托管 Runner 构建部署 UI 故障排除指南:找不到 NVM 或 Node.js

Linux

在 Linux 上使用自托管 Runner 构建和部署 UI:故障排除指南

简介

构建和部署用户界面 (UI) 时,借助自托管 runner 在 Linux 上使用 GitHub Actions 可以显著简化流程。然而,一些用户在尝试此过程时可能会遇到问题,特别是在找不到 nvm 或 Node.js 时。本文旨在提供全面的故障排除指南,帮助你解决此问题,并确保你的 UI 顺利部署。

问题:找不到 nvm 或 Node.js

当自托管 runner 无法找到 nvm 或 Node.js 时,会导致构建失败并显示以下错误信息:

nvm: command not found Error: Process completed with exit code 127.

即使已经安装了 nvm 和 Node.js,此问题也可能发生。

解决方法

要解决此问题,你需要采取以下步骤:

  1. 验证 nvm 和 Node.js 已安装

使用以下命令检查是否已安装 nvm 和 Node.js:

nvm list
node -v
npm -v
  1. 将 nvm 和 Node.js 添加到路径

编辑 runner 配置文件(通常位于 /etc/github-actions/runners.yml),并在 env 部分添加以下内容:

- name: PATH
     value: /usr/local/bin:/usr/bin:/bin

这将把 nvm 和 Node.js 所在目录添加到路径中。

  1. 重新启动 runner

重新启动 runner 以应用更改:

sudo systemctl restart runner
  1. 重新运行工作流

重新运行 GitHub Actions 工作流。如果问题已解决,你应该能够成功构建和部署你的 UI。

结论

通过将 nvm 和 Node.js 添加到 runner 的路径中,你可以允许 GitHub Actions 使用服务器上安装的 Node.js。这将节省部署时间,因为无需每次提交代码时都设置 Node.js 和 nvm。

常见问题解答

Q1:为什么需要将 nvm 和 Node.js 添加到路径中?

A1:GitHub Actions runner 在沙盒环境中运行,因此默认情况下找不到系统范围的 nvm 和 Node.js。添加它们到路径中允许 runner 访问它们。

Q2:我已将 nvm 和 Node.js 添加到路径中,但仍然遇到错误。怎么办?

A2:确保你使用的是正确的路径并已重新启动 runner。此外,检查你的 nvm 和 Node.js 安装是否正确。

Q3:是否可以全局安装 nvm 和 Node.js?

A3:不建议全局安装 nvm,因为它可能会导致其他应用程序出现问题。相反,使用 nvm 本地安装 Node.js 更好。

Q4:是否有其他方法可以解决此问题?

A4:可以使用 Docker 镜像来提供 nvm 和 Node.js 的隔离环境。然而,将它们添加到路径中通常更容易且更可靠。

Q5:如果我无法自己解决此问题,我应该怎么办?

A5:你可以联系 GitHub 支持或在 GitHub 社区论坛上寻求帮助。