首页 > 解决方案 > 如何在 jenkins ssh-slave 节点上运行的声明性管道中使用代理 docker?

问题描述

我将 jenkins master 和 slave 作为 docker 容器运行。我已经使用标签为“worker”的 jenkins/ssh-slave 图像设置了一个从节点。我可以在工作节点上成功运行我的管道。但是,当我尝试使用 Jenkinsfile 运行 docker build 命令时,出现错误docker: not found

pipeline {
agent { label 'worker' }
tools {nodejs "node"}
stages {
    stage ('Build APP') {
        steps {
            echo 'BUILDING APPLICATION'
            sh 'npm install'
        }
    }

    stage ('Create Package') {
        steps {
            script{
                echo 'BUILDING DOCKER IMAGE'
                docker.build("package${env.BUILD_NUMBER}")
            }
        }
    }

    stage('Package Test') {
        agent { docker }
        steps {
            echo 'RUNNING IMAGE IN CONATAINER'
            sh "docker run -p 5050:4000 -d package${env.BUILD_NUMBER}"
            echo 'CHECKING HEALTH STATUS'
            script {
                try {
                    sh "curl -s --head --request GET http://127.0.0.1:5050/ | grep '200'"
                    echo 'Health Check Passed!'
                } catch(Exception e) {
                    echo "Health Check Failed!"
                }
            }
        }
    }

在第三步“包测试”中,我已将代理 docker 放入文件中,但它似乎不起作用。如何将代理 docker 放置在声明性管道中?

标签: dockerjenkinsjenkins-pipelinejenkins-slave

解决方案


推荐阅读