Java 如何在我的机器上的docker守护程序和Jenkins之间建立连接以执行docker命令?
我的詹金斯档案:Java 如何在我的机器上的docker守护程序和Jenkins之间建立连接以执行docker命令?,java,spring,rest,docker,jenkins,Java,Spring,Rest,Docker,Jenkins,我的詹金斯档案: pipeline { agent any stages { stage('Initialize') { steps { script { def dockerHome = tool 'myDocker' env.PATH = "${dockerHome}/bin:${env.PATH}" } } } st
pipeline {
agent any
stages {
stage('Initialize') {
steps {
script {
def dockerHome = tool 'myDocker'
env.PATH = "${dockerHome}/bin:${env.PATH}"
}
}
}
stage('Build') {
steps {
echo 'building backend...'
withGradle() {
sh './gradlew build'
}
}
}
stage('Test') {
steps {
echo 'testing'
}
}
stage('Deploy') {
steps {
echo 'deploying'
sh './gradlew jibBuildTar'
sh 'docker load --input build/image.tar'
}
}
}
}
Jenkins不允许我使用docker命令,因为docker守护进程未运行。如何将我的守护进程连接到jenkins?
我在jenkins上也安装了docker和docker管道插件。讨论总结:
默认情况下,Jenkins在
master
节点上执行。Docker必须安装在master
节点上,并且需要允许Jenkins用户执行Docker命令()。在某些执行器上安装Docker,并在此特定执行器上运行需要Docker的步骤/阶段。演示如何在jenkins上注册和配置从属节点,以及如何在管道中使用node()
关键字。您可以使其在主节点上与在从属工作节点上一样工作。如果您不介意在一台机器上执行所有操作。根据您的基础架构,您应该为自己选择最佳的解决方案。如果你想让它在主机上工作,只需连接到主机,并在主机上正确配置docker。当然,如果你不在主机上修复docker,它将永远不会工作。我很困惑master
是您希望执行管道的位置。因此,您应该在这里调查docker是否正确安装,并且在中执行jenkins命令的用户应该可以访问docker命令(应该添加到docker组)。