sudo/docker 在 运行 Jenkins 管道时未找到
sudo/docker not found while running the Jenkins pipeline
我在 aws ec2 实例的 docker 中安装了 Jenkins 运行ning。我正在使用以下命令启动 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
以下是我的 Jenkins 文件:
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 作业日志中,当我 运行 作业时,我得到 sudo not found
。如果我删除第一阶段 'Docker Permissions' 然后我开始关注 docker not found
.
/var/jenkins_home/workspace test@tmp/durable-12345/script.sh: 1:
/var/jenkins_home/workspace test@tmp/durable-12345/script.sh: docker:
not found
感谢任何帮助。
在Docker中不推荐使用“sudo”。如果你能够 运行 docker 那么你可以很容易地成为 root。在启动 Jenkins 时,你已经在使用 --privileged
,这应该 运行 这个命令具有更高的权限。
尝试从命令中删除 sudo
和 运行。
您不需要在第一步中更改权限。
所以你可以删除你的第一阶段 Docker Permissions
.
运行 你的容器是这样的:
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.sock
- 您还需要共享容器的 docker 路径:
-v $(which docker):/usr/bin/docker
查看有关 docker forum 的信息。
我在 aws ec2 实例的 docker 中安装了 Jenkins 运行ning。我正在使用以下命令启动 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
以下是我的 Jenkins 文件:
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 作业日志中,当我 运行 作业时,我得到 sudo not found
。如果我删除第一阶段 'Docker Permissions' 然后我开始关注 docker not found
.
/var/jenkins_home/workspace test@tmp/durable-12345/script.sh: 1: /var/jenkins_home/workspace test@tmp/durable-12345/script.sh: docker: not found
感谢任何帮助。
在Docker中不推荐使用“sudo”。如果你能够 运行 docker 那么你可以很容易地成为 root。在启动 Jenkins 时,你已经在使用 --privileged
,这应该 运行 这个命令具有更高的权限。
尝试从命令中删除 sudo
和 运行。
您不需要在第一步中更改权限。
所以你可以删除你的第一阶段 Docker Permissions
.
运行 你的容器是这样的:
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.sock
- 您还需要共享容器的 docker 路径:
-v $(which docker):/usr/bin/docker
查看有关 docker forum 的信息。