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会出现这个问题,我并没有定位到。期待大佬们的解惑。

相关推荐
HUT_Tyne26517 分钟前
Linux 快速入门
linux·运维·服务器
鸠摩智首席音效师40 分钟前
如何在 Linux 中使用 dd 命令 ?
linux·运维·服务器
JuiceFS2 小时前
JuiceFS sync 原理解析与性能优化,企业级数据同步利器
运维·后端
Logan Lie3 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端
Y淑滢潇潇3 小时前
RHCE 防火墙实验
linux·运维·rhce
稻谷君W4 小时前
Ubuntu 远程访问 Win11 WSL2 并固定访问教程
linux·运维·ubuntu
泡沫·4 小时前
4.iSCSI 服务器
运维·服务器·数据库
悠悠121385 小时前
告别Zabbix?我用Netdata只花10分钟就搞定了50台服务器的秒级监控(保姆级实战)
运维·服务器·zabbix
天庭鸡腿哥5 小时前
大小只有4K的软件,可让系统瞬间丝滑!
运维·服务器·windows·microsoft·everything
虚伪的空想家5 小时前
华为昇腾Atlas 800 A2物理服务器开启VT-d模式
运维·服务器·ubuntu·kvm·vt-d·直通