【问题标题】:Jenkins & NodeJS plugin - Permission Denied errorJenkins & NodeJS 插件 - 权限被拒绝错误
【发布时间】:2014-12-01 23:46:36
【问题描述】:

我已经设法在 Raspberry Pi 上设置了一个 Jenkins 实例,并且在我最终遇到这个绊脚石之前已经安装了 NodeJS 插件:

Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/Test Project/workspace
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url localhost:/GITREPO/test # timeout=10
Fetching upstream changes from localhost:/GITREPO/test
 > git --version # timeout=10
 > git fetch --tags --progress localhost:/GITREPO/test +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 8e6edee9fdc1e8bf754dc1a27f46c1dea3531144 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 8e6edee9fdc1e8bf754dc1a27f46c1dea3531144
 > git rev-list 8eaf1bc6a0be837100e476b33bec559b33e9997f # timeout=10
[workspace] $ /bin/sh -xe /tmp/hudson5445359267004163031.sh
+ echo /usr/local/bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
/usr/local/bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
+ node --version
v0.10.32
+ grunt --version
grunt-cli v0.1.13
+ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
[workspace] $ /tmp/hudson1009495610900642950.js
FATAL: command execution failed
java.io.IOException: Cannot run program "/tmp/hudson1009495610900642950.js" (in directory "/var/lib/jenkins/jobs/Test Project/workspace"): error=13, Permission denied
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:802)
    at jenkins.plugins.nodejs.tools.DecoratedLauncher.launch(DecoratedLauncher.java:49)
    at jenkins.plugins.nodejs.tools.NpmPackagesBuildWrapper$2.launch(NpmPackagesBuildWrapper.java:88)
    at hudson.Launcher$ProcStarter.start(Launcher.java:380)
    at hudson.Launcher$ProcStarter.join(Launcher.java:387)
    at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:84)
    at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:42)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
    at hudson.model.Run.execute(Run.java:1745)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: java.io.IOException: error=13, Permission denied
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:187)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
    ... 18 more
Build step 'Execute NodeJS script' marked build as failure
Finished: FAILURE

我没有做任何特别的事情,这是确保 NodeJS 插件正常工作的初步测试:

var sys = require('sys');
sys.puts('NodeJS Test');
sys.puts('***********');
sys.puts('Hello World');

如果我以 Jenkins 用户身份登录并自己运行它,这将有效:

jenkins@raspberrypi:~$ node test.js
NodeJS Test
***********
Hello World
jenkins@raspberrypi:~$ 

我在互联网上搜索过,似乎找不到任何具体的信息;很确定它不是专门的文件权限(工作区目录对所有用户都有完全访问权限)

【问题讨论】:

  • 尝试在该脚本的第一行添加带有#!/usr/bin/node 的行(使用which node 检查该路径是否正确)
  • @Salem,他没有使用“Execute Shell”构建步骤,所以这个建议完全无效

标签: node.js jenkins raspberry-pi


【解决方案1】:

我遇到了同样的问题。对我来说,这是 jenkins 的“全局配置”下的 nodejs 插件配置。我的“节点”应用程序(符号链接)位于/usr/local/bin/node。我的“安装目录”设置为/usr/local/bin/。我也改变了/usr/local/,它开始工作了! :)

请注意,这是您使用 nodejs 插件的“自动安装”功能时。

【讨论】:

    【解决方案2】:

    我在 Jenkins 权限方面遇到了几乎相同的问题,

    问题是Jenkins无法写入它没有权限的文件夹,所以我在/var/lib/jenkins/tools/

    中自动安装了nodejs插件

    我在这里更详细地描述了:

    Jenkins And NodeJS Plugin - Permission Denied Error=13

    【讨论】:

      猜你喜欢
      • 2014-07-07
      • 2016-09-05
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2020-02-03
      • 2018-11-16
      相关资源
      最近更新 更多