Jenkins管道中的Openshift Docker CLI

时间:2019-01-15 20:18:37

标签: docker jenkins openshift pipeline

我正在尝试使用Openshift 3.9中的管道构建,我需要使用docker CLI。我不知道如何在管道中使用“ docker”命令。

我已经在声明性管道中尝试了以下代码,但收到“ docker:not found”

pipeline {
            agent {
                docker { image 'node:7-alpine' }
            }
            stages {
                stage('Test') {
                    steps {
                        sh 'node --version'
                    }
                }
            }
          }

代码是从此处复制的:

https://jenkins.io/doc/book/pipeline/docker/

我还尝试了它的脚本版本:

node {
    /* Requires the Docker Pipeline plugin to be installed */
    docker.image('node:7-alpine').inside {
        stage('Test') {
            sh 'node --version'
        }
    }
}

但是出现相同的错误:“ docker:找不到命令”

已安装docker管道插件(版本:1.17) Openshift版本:3.9

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

似乎是在运行管道的节点上没有安装docker。您需要先安装它。如果没有预先配置,就无法在安装Docker Plugin之后立即使用docker命令:

  

默认情况下,Docker Pipeline插件将与本地Docker守护进程通信,该守护进程通常通过/var/run/docker.sock访问。

答案 1 :(得分:0)

Openshift提供了三种类型的詹金斯slave images

  1. 支持Maven
  2. 支持Nodejs
  3. 基本图片

他们两个都没有安装docker,并相信我that's not a good idea

在Openshift中,Jenkins的运行方式为Pod(在内部运行docker容器),并且您希望将docker放入容器中。因此,如果您想使Docker可用,

  1. 您必须通过扩展基础映像并添加docker来创建jenkins从属映像
  2. 将其推送到注册表
  3. 开始使用它!

但是,如果确实需要,请执行上述操作,仅需谨慎一点;)