Docker Jenkins管道无法在Jenkins节点上运行远程脚本

Docker Jenkins管道无法在Jenkins节点上运行远程脚本,docker,ubuntu,jenkins,jenkins-pipeline,pipeline,Docker,Ubuntu,Jenkins,Jenkins Pipeline,Pipeline,我正在尝试运行以下清理脚本,但它在特定Jenkins节点上不断失败: def BUILDERS = [:].asSynchronized() def NODE_NAMES = [ 'cleanuptooldean', //test ] node('master') { stage('Prepare the Pipeline') { // get deploy pattern from params for (NODE_NAME in N

我正在尝试运行以下清理脚本,但它在特定Jenkins节点上不断失败:

def BUILDERS = [:].asSynchronized()
def NODE_NAMES = [
    'cleanuptooldean', //test
    ]

node('master') {
    stage('Prepare the Pipeline') {
        // get deploy pattern from params 
        for (NODE_NAME in NODE_NAMES) {
            // Groovy closures stuff, need to copy it over
            def FINAL_NODE_NAME = NODE_NAME
            BUILDERS[FINAL_NODE_NAME] = {
                node(FINAL_NODE_NAME) {
                    timeout(time:5, unit: "MINUTES") {
                        echo "Started Cleaning process of unused docker images from Jenkins Instance, Agent: "+env.NODE_NAME
                        sh "docker system prune -a --volumes -f"
                        echo "Cleaning up space from unused packages (orphaned dependencies), remove old kernels in Ubuntu, Agent: "+env.NODE_NAME
                        sh "sudo apt-get -y autoremove --purge"
                        echo "clean the apt cache on Ubuntu "+ env.NODE_NAME 
                        sh "sudo apt-get -y clean"
                        echo "Finished Cleaning process of unused docker images from Jenkins Instance, Agent: "+env.NODE_NAME
                    }
                }
            }
        }
    }
}
如果我在“apt-get-y autoremove--purge”和“apt-get-y clean”的开头键入“Sudo”,我得到的错误是:“Sudo:no tty present and no askpass program specified”不用说我已经编辑了sudoers文件并添加了“jenkins ALL=(ALL)NOPASSWD:ALL”以便在文件末尾对其进行测试。 如果我删除“Sudo”命令,我得到的错误是:“dial unix/var/run/docker.sock:connect:permission denied”,我试图通过将“Jenkins”用户添加到“docker”组来解决这个问题

**我必须说,当我在本地运行命令时,无论是否使用“Sudo”,它们都可以从“Jenkins”用户处运行,但是当我尝试使用管道从Jenkins远程运行命令时,它失败了

***此特定脚本在其他节点上可以完美地工作


提前感谢

显然每个节点使用了不同的用户,因此我必须将所有用户添加到docker的组中,并将其添加到visudo文件中