pipeline {
|
agent any
|
//变量定义
|
environment {
|
REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
|
ALIYUN_NAMESPACE = 'arsn'
|
}
|
|
stages {
|
//1.拉取源码
|
stage('Git Checkout'){
|
steps {
|
git branch: 'master', credentialsId: 'gitblit', url: 'http://192.168.0.105:10010/r/zhba_management_w.git'
|
}
|
}
|
//2.编译成jar包
|
stage('Maven Build') {
|
steps {
|
sh 'ls'
|
sh 'mvn clean package -Dmaven.test.skip=true'
|
sh 'ls target/'
|
}
|
}
|
//3.构建镜像
|
stage('Build and Push Image'){
|
steps{
|
sh 'docker build -f Dockerfile -t zhbaw:latest .'
|
}
|
}
|
//4.拉取镜像并启动
|
stage('推送镜像'){
|
steps{
|
script{
|
withCredentials([usernamePassword(credentialsId: 'aliyun', passwordVariable: 'password', usernameVariable: 'username')]) {
|
sh 'echo "$password" | docker login $REGISTRY -u "$username" --password-stdin'
|
sh 'docker tag zhbaw:latest $REGISTRY/$ALIYUN_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
|
sh 'docker push $REGISTRY/$ALIYUN_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
|
sh 'docker rmi $REGISTRY/$DOCKERHUB_NAMESPACE/zhbaw:SNAPSHOT-$BUILD_NUMBER'
|
sh 'docker rmi zhbaw:latest'
|
}
|
}
|
}
|
}
|
//5.部署
|
stage('deploy to dev') {
|
steps {
|
input '是否部署?'
|
sh 'docker-compose up -d'
|
sh 'docker rmi $REGISTRY/$DOCKERHUB_NAMESPACE/zhbaw:SNAPSHOT-$(BUILD_NUMBER-1)'
|
}
|
}
|
}
|
}
|