当前位置: 首页 > 知识库问答 >
问题:

运行Jenkins管道时未找到sudo/docker

丌官子安
2023-03-14

我让Jenkins在docker内部运行aws ec2实例。我正在使用以下命令启动Jenkins:

sudo docker run --privileged --name jenkins-master -p 80:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -d jenkins/jenkins:lts

以下是我的文件

pipeline {
    agent none
    stages {
        stage("Docker Permissions") {
        agent any
            steps {
                sh "sudo chmod 666 /var/run/docker.sock"
            }
        }
        stage('Build') {
            agent {
                docker {
                    image 'maven:3-alpine'
                    args '-v $HOME/.m2:/root/.m2'
                }
            }
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
        stage('Build') {
        agent none
            steps {
                script {
                    image = docker.build("image11")
                    println "Newly generated image: " + image.id
                }
            }
        }
    }
}

在Jenkins作业日志中,当我运行作业时,我得到sudonotfound。如果我删除了第一阶段的“Docker权限”,那么我将开始获得以下未找到Docker

/var/jenkins_home/workspacetest@tmp /durable-12345/script.sh: 1: /var/jenkins_home/workspacetest@tmp /durable-12345/script.sh: docker:未找到

谢谢你的帮助。

共有2个答案

艾正浩
2023-03-14

在Docker中,不建议使用“sudo”。如果你能运行docker,那么你很容易成为root用户。在执行Jenkins up时,您已经在使用--privileged,它应该以更高的权限运行此命令。

尝试从命令中删除sudo并运行。

纪佐
2023-03-14

您不需要在第一步中更改权限
这样您就可以删除您的第一阶段Docker权限

按如下方式运行容器:

sudo docker run --name jenkins-master -p 80:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d jenkins/jenkins:lts
  • 您可以删除--privileged标志
  • 您需要与您的容器共享docker主机:
    -v/var/run/docker。sock:/var/run/docker。袜子
  • 您还需要共享容器的docker路径:
    -v$(哪个docker):/usr/bin/docker

请参阅docker论坛上的信息。

 类似资料:
  • 这是我的Dockerfile的内容。 当我运行Dockerfile来构建docker映像时,我得到以下错误: /bin/sh:1:sudo:未找到 你能帮我解决上面的错误吗?

  • 我已经创建了GKE集群,并在该集群上安装了Jenkins。现在我正在运行管道,我已经创建了Jenkinsfile,用于构建DockerImage,但是当我运行管道时,它抛出了未找到Docker的异常 1)创建了GKE集群2)安装了Jenkins 3)添加了Docker集线器凭据4)添加了gitlab的访问密钥 JenkinsFile: stage(“Build Docker Image”){当{b

  • 目前,我正在使用头盔和地形在GCP上部署我的詹金斯。这是我的地形代码: 但当我尝试在管道上运行docker命令时,我得到了以下错误: [vision_front_new_master-pth4udtqvsas7vicpco2ufhiem6b37lqylejt5bmat36ayx77ka]运行shell脚本 docker拉节点:碳 /home/jenkins/workspace/vision\u f

  • 我有一个脚本叫做在我的主文件夹中。 当我导航到这个文件夹,并输入,我得到 . 当我使用时,我得到 。 为什么会发生这种情况,我如何解决它?

  • 我试图在Flutter项目中运行我的.dart文件,看看SQlite数据库在Flutter应用程序中是如何工作的。所以我正在删除我的。Dart文件,然后出现了这个错误 我不知道为什么在多次重启IDE并调用flutter pub get后,这个错误仍然发生 这是我的颤振医生的完整结果

  • 我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。 我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins- 以下是看到的问题: 1.)在构建阶段成功后,我得到以下错误: " java.lang.NoSuchMethodError:在步骤[archive,bat,build,catch