node{ stage('Git Checkout'){ git url: 'https://github.com/javahometech/my-app', branch:'master' } stage('MVN Package'){ def mvnHome = tool name: 'maven-3', type: 'maven' sh "${mvnHome}/bin/mvn clean package" } stage('Build Docker Image'){ sh 'docker build -t kammana/my-app:0.0.1 .' } stage('Upload Image to DockerHub'){ withCredentials([string(credentialsId: 'docker-hub', variable: 'password')]) { sh "docker login -u kammana -p ${password}" } sh 'docker push kammana/my-app:0.0.1' } stage('Remove Old Containers'){ sshagent(['my-app-dev']) { try{ def sshCmd = 'ssh -o StrictHostKeyChecking=no ec2-user@172.31.18.198' def dockerRM = 'docker rm -f my-app' sh "${sshCmd} ${dockerRM}" }catch(error){ } } } stage('Deploy-Dev'){ sshagent(['my-app-dev']) { input 'Deploy to Dev?' def sshCmd = 'ssh -o StrictHostKeyChecking=no ec2-user@172.31.18.198' def dockerRun = 'docker run -d -p 8080:8080 --name my-app kammana/my-app:0.0.1' sh "${sshCmd} ${dockerRun}" } } }