Linux 自托管 Runner 构建部署 UI 故障排除指南:找不到 NVM 或 Node.js
2024-03-01 04:53:29
在 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,此问题也可能发生。
解决方法
要解决此问题,你需要采取以下步骤:
- 验证 nvm 和 Node.js 已安装
使用以下命令检查是否已安装 nvm 和 Node.js:
nvm list
node -v
npm -v
- 将 nvm 和 Node.js 添加到路径
编辑 runner 配置文件(通常位于 /etc/github-actions/runners.yml
),并在 env
部分添加以下内容:
- name: PATH
value: /usr/local/bin:/usr/bin:/bin
这将把 nvm 和 Node.js 所在目录添加到路径中。
- 重新启动 runner
重新启动 runner 以应用更改:
sudo systemctl restart runner
- 重新运行工作流
重新运行 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 社区论坛上寻求帮助。