【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一,jenkins任务创建,选择“流水线”
二,进行流水线脚本编写
参考流水线语法生成器,相关svn的配置语法如下:
三,安装ssh pipeline远程登录执行插件
最终脚本配置如下:
pipeline {
agent any
environment {
Version="1.0.0.1"
}
stages {
stage('SVN代码拉取') {
steps {
checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '724e0cad-7aef-46b4-b882-55bd0818d5f2', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'svn://172.20.4.111/docs']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
}
}
stage('Maven代码构建') {
steps {
sh 'echo "maven buile"'
sh '''
echo "Multiline shell steps works too"
ls -lah
pwd
pwd
pwd
pwd
/opt/apache-maven-3.6.3/bin/mvn clean
/opt/apache-maven-3.6.3/bin/mvn package
'''
}
}
stage('Dockerimage镜像') {
steps {
sh label: '', script: '''#!/bin/sh
REPOSITORY=172.20.4.67:5000/maven-test:1.0.0.1
WAR=`basename target/*.war`
echo ${REPOSITORY}
echo ${Version}
# 构建镜像
cat > Dockerfile << EOF
FROM 172.20.4.67:5000/tomcat-85:latest
RUN rm -rf /usr/local/tomcat/webapps/*
COPY target/*.war /usr/local/tomcat/webapps/$WAR
CMD ["catalina.sh", "run"]
EOF
sudo docker build -t $REPOSITORY .
# 上传镜像
sudo docker push $REPOSITORY
echo "success !!!"'''
}
}
stage ('Docker run') {
agent none
steps {
script {
def remote = [:]
remote.name = 'test'
remote.host ='172.20.4.67'
remote.user = 'root'
remote.password ='************'
remote.allowAnyHosts= true
sshCommand remote: remote, command:
'''
echo "$Version"
echo "$Version"
echo "$Version"
docker image ls
REPOSITORY=172.20.4.67:5000/maven-test:1.0.0.1
# 部署
docker rm -f maven-test |true
#docker image rm $REPOSITORY |true
docker container run -d --name maven-test -p 7070:8080 $REPOSITORY
echo $REPOSITORY
'''
}
}
}
}
}
来源:oschina
链接:https://my.oschina.net/u/4135913/blog/3153208