java - 如何在机器上的docker守护程序和Jenkins之间建立连接以执行docker命令?

标签 java spring rest docker jenkins

我的 Jenkins 文件:

     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命令(should be added to docker group)。

关于java - 如何在机器上的docker守护程序和Jenkins之间建立连接以执行docker命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61061309/

相关文章:

java - 返回带有对象列表的 ResponseEntity

json - 将 JSON 发布到 REST API

java - 可运行的子类,普通的父类(super class),如何运行子类?

Java-Spring 启动 : Access-Control- Allow-Origin not working

Java 默认字符串哈希函数在单个字符串上产生冲突

java - Spring测试集成未运行我如何处理这个错误?

java - 如何在 Java Spring 4.0.4 中使用 @PropertySource?

json - 为什么api github搜索找不到所有存储库

java - Swagger-UI 无法识别 application/hal+json

java - SQL try catch 永远无法捕获(实现超时?)