Докер Jenkins Blue Ocean не может запустить ssh scp в конвейере - PullRequest
0 голосов
/ 05 июня 2018

Я построил докер Jenkins из инструкций jenkins, таких как:

docker run -u root --rm -d -p 8080:8080 -p 50000:50000 -v /root/.ssh/id_rsa:/root/.ssh/id_rsa -v jenkins-home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

Он работает так, как я ожидал.

Затем я настраиваю новое задание конвейера, Jenkinsfile просто так:

pipeline {
agent {
    docker {
        image 'maven:3-alpine'
        args '-v /root/.m2:/root/.m2'
    }
}
stages {
    stage('Build') {
        steps {
            sh 'mvn -B -DskipTests clean package'
        }
    }
    stage('Test') {
        steps {
            echo "Testing!"
        }

    } 
    stage('Deploy') {
        steps {
            sh "ssh docker@192.168.99.101 rm -rf /home/docker/wildfly_deployments/*" 
            sh "scp target/test-docker-app-1.0.war docker@192.168.99.101:/home/docker/wildfly_deployments/"
        }

    } 
}
}

Когда я запускаю это задание на этапе «Развертывание», оно показывает мне это сообщение об ошибке

[test-docker-app] Running shell script
+ ssh docker@192.168.99.101 rm -rf /home/docker/wildfly_deployments/*
/var/jenkins_home/workspace/test-docker-app@tmp/durable-4cd12dd8/script.sh: line 1: ssh: not found
script returned exit code 127

Я уверен, что контейнер Jenkins может выполнять ssh и scp, потому что у меня естьпытался выполнить те же самые команды внутри контейнера Jenkins, я работал.

Знаете ли вы, что я не так в Jenkinsfile?Пожалуйста, помогите

Спасибо.

==============================

Я нашел проблему в моем jenkinsfile, она должна быть:

pipeline {
    agent any
    stages {
        stage('Build') {
            agent {
                docker {
                    image 'maven:3-alpine'
                    args '-v m2_repos:/root/.m2'
                }
            }
            steps {
                sh 'mvn -B -DskipTests clean package'
            }
        }
        stage('Test') {
            steps {
                echo "Testing!"
            }

        } 
        stage('Deploy') {
            steps {
                sh "ssh docker@192.168.99.101 rm -rf /home/docker/wildfly_deployments/*" 
                sh "scp target/test-docker-app-1.0.war docker@192.168.99.101:/home/docker/wildfly_deployments/"
                /*sh 'bash ./deploy.sh'*/
            }

        } 
    }
}
...