Jenkins未通过:要求终端读取密码;可以使用-S选项从标准输入读取

xxb16uws  于 2022-12-17  发布在  Jenkins
关注(0)|答案(2)|浏览(604)

Jenkins构建时,在控制台输出上显示错误,如下所示:

sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper

我该怎么解决这个问题?
在configure的Execute Shell中有以下命令:

sudo pnpm run build
sudo kill -9 $(sudo lsof -t -i:3000)

输出:

16:42:03  > git config core.sparsecheckout # timeout=10
16:42:03  > git checkout -f 9998780d6a154bab01b4c010616f25a6f018d80c # timeout=10
16:42:03 Commit message: "fix swr"
16:42:03  > git rev-list --no-walk 9998780d6a154bab01b4c010616f25a6f018d80c # timeout=10
16:42:04 [ProjectReact] $ /bin/sh -xe /tmp/jenkins14253074063433648143.sh
16:42:04 + sudo pnpm run build
16:42:04 sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
16:42:04 Build step 'Execute shell' marked build as failure
16:42:04 Finished: FAILURE

如果我不在pnpm命令的开头使用“sudo”命令,但需要将其用于kill端口并重新启动

92dk7w1h

92dk7w1h1#

从脚本中删除sudo,并让pnpm在没有它的情况下运行--反正它不需要root权限。
sudo旨在由人类用户在终端中使用,默认情况下,它需要用户的密码来运行具有提升权限的命令。
在Jenkins上运行作业时,不应使用sudo

vnzz0bqm

vnzz0bqm2#

我找到了在jenkins execute shell中使用sudo命令的解决方案。

sudo su    
nano /etc/sudoers

在注解#用户权限规范下添加以下行。

jenkins ALL= NOPASSWD: ALL

之后,我可以在jenkins中使用“sudo”命令。

相关问题