Jenkins 安装 NodeJS 插件后无法识别Node环境:env node No such file or directory

分析:

经验证,该问题在使用Jenkins官方文档中推荐的docker镜像jenkinsci/blueocean才会出现。

bash 复制代码
docker run \
  -u root \
  --rm \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

我的解决方法:

改用最新的Jenkins docker镜像就不会遇到:

我安装的是最新的Jenkins docker镜像:

bash 复制代码
docker pull jenkins/jenkins:lts

然后运行镜像:

bash 复制代码
docker run \
  -u root \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins:lts

注意docker run时,镜像名为jenkins/jenkins:lts,而不是jenkins/jenkins。两者不同。

原因推测

为什么jenkinsci/blueocean镜像会出现这个问题还未定位到。

但在试错的过程中有如下发现:

  1. jenkinsci/blueocean镜像基于Alpine Linux系统;jenkins/jenkins:lts基于Debian系统
  2. jenkinsci/blueocean的shell是ash,即阉割版的bash;而jenkins/jenkins:lts时完整的bash。可通过vi /etc/passwd命令查看
  3. 起初怀疑是软连接 的原因。但是按照网上的说法进行配置,还是不行。后来发现jenkinsci/blueocean镜像无法通过./node来运行(Ubuntu/Debian可以)。因此怀疑jenkinsci/blueocean镜像的shell无法运行Node支持程序。
  4. ash视乎无法识别Node二进制文件(执行程序)的路径:node.js - 在 Jenkins docker 实例上找不到 Node - IT工具网 (coder.work)。因此,我参考文章Understanding /etc/passwd File Format - nixCraft (cyberciti.biz),尝试在Alpine Linux系统中安装bash,但是还是不行。

至此,我只能怀疑是jenkinsci/blueocean镜像采用的Alpine Linux系统的问题。按理来说,Alpine Linux系统是可以安装使用NodeJS的,由于我只是使用过Ubuntu,所以不能确定。所以大概率是jenkinsci/blueocean镜像封装Alpine Linux系统时本身的BUG。

最后

目前,通过替换Jenkins Docker的镜像可以避免env node No such file or directory问题。但是为什么jenkinsci/blueocean会出现这个问题,我并没有定位到。期待大佬们的解惑。

相关推荐
KIDULT°2 小时前
MySQL系列 (1):数据库原理
运维·数据库·mysql·云计算
wewowilling5 小时前
认识微服务
java·运维·微服务·springcloud
玖石书5 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
weifont7 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
拂拉氏7 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Mikko78 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
光依旧8 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
yichengerp9 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造
天国梦9 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
信可维10 小时前
自动化操作多平台账号:登录态、双会话与 User Data 的 3 个坑
运维·自动化