Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
openshift jenkins CI制作docker图像_Docker_Jenkins_Continuous Integration_Jenkins Pipeline_Openshift - Fatal编程技术网

openshift jenkins CI制作docker图像

openshift jenkins CI制作docker图像,docker,jenkins,continuous-integration,jenkins-pipeline,openshift,Docker,Jenkins,Continuous Integration,Jenkins Pipeline,Openshift,我正在使用openshift okd并从目录中安装Jenkins master。使用去极化管道(Jenkinsfile)的示例项目使用docker执行命令。但docker客户端似乎在jenkins容器中不可用 /var/jenkins_home/workspace/app@tmp/durable-e839f204/script.sh: docker: not found 因为我使用的是openshift,所以我假设docker必须在主机上可用。但Jenkins是一个没有docker客户的豆荚

我正在使用openshift okd并从目录中安装Jenkins master。使用去极化管道(Jenkinsfile)的示例项目使用docker执行命令。但docker客户端似乎在jenkins容器中不可用

/var/jenkins_home/workspace/app@tmp/durable-e839f204/script.sh: docker: not found
因为我使用的是openshift,所以我假设docker必须在主机上可用。但Jenkins是一个没有docker客户的豆荚

问题:在管道脚本中使用docker图像,我应该怎么做

已安装jenkins docker插件,但这不会将docker客户端安装到容器。在谷歌上搜索时,我发现了几篇关于Docker in Docker(DinD)和Docker over Docker的文章

作为解决方法,我使用docker守护程序和客户端二进制文件创建了一个单独的VM。该VM被添加为Jenkins奴隶。这个可以用,但我觉得它太大了。我正在寻找一个更轻的解决方案

我假设docker已经在openshift节点上可用。从openshift catalougue安装Jenkins很容易,Jenkins被配置为访问openshift k8s集群(云设置)

  • 为什么jenkins主节点上没有docker客户端
  • 在这样的云设置中,推荐使用docker的方法是什么
  • 可选:如何扩展jenkins工作节点/从节点?我认为这应该是可能的,动态增加工人/奴隶的数量
  • 要运行的简单示例:

    pipeline {
        agent {
            docker {
                image 'maven:3-alpine'
                args '-v $HOME/.m2:/root/.m2'
            }
       }
       stages {
            stage('Build') {
                steps {
                    sh 'mvn -B'
                }
            }
        }
    }
    
    我的openshift jenkins应该能够执行这样的管道