如果jenkins下载插件老失败还慢地址换成:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
1,
下载jenkins容器后启动命令sudo docker run -it -d -p 58080:8080 -p 50000:50000 --name jenkins -u bigabc -v /home/bigabc/env/docker/jenkins:/var/jenkins_home jenkins/jenkins:lts
/var/jenkins_home是挂载磁盘的地址
2.maven下载后放在docker下/home/bigabc/env/docker/jenkins/env/apache-maven-3.6.3
maven.tar.gz就放在 /home/bigabc/env/docker/jenkins/env(自己dokcer下jenkins目录)
3 ,jdk不用装。dokcer下jenkins自带openjdk1.8
4进入jenkins界面 svn或git,maven,ssh插件在这不做解释,过于简单
5图片就是操作的顺序
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
6
jenkins创建一个项目选择
6.2
当然也可以选择第一种方式直接写管道脚本
5.9.5.10是pipeline下面点击Pipeline Syntax里面的内容
jenkinsfile内容
pipeline {
agent any
tools {
maven ‘maven’
}
stages {
stage(‘Tip’) {
steps {
echo “部署sjx到测试环境start”
}
}
stage(‘Checkout’) {
steps {
sh ‘mvn -v’
checkout([
c
l
a
s
s
:
′
S
u
b
v
e
r
s
i
o
n
S
C
M
′
,
a
d
d
i
t
i
o
n
a
l
C
r
e
d
e
n
t
i
a
l
s
:
[
]
,
e
x
c
l
u
d
e
d
C
o
m
m
i
t
M
e
s
s
a
g
e
s
:
′
′
,
e
x
c
l
u
d
e
d
R
e
g
i
o
n
s
:
′
′
,
e
x
c
l
u
d
e
d
R
e
v
p
r
o
p
:
′
′
,
e
x
c
l
u
d
e
d
U
s
e
r
s
:
′
′
,
f
i
l
t
e
r
C
h
a
n
g
e
l
o
g
:
f
a
l
s
e
,
i
g
n
o
r
e
D
i
r
P
r
o
p
C
h
a
n
g
e
s
:
f
a
l
s
e
,
i
n
c
l
u
d
e
d
R
e
g
i
o
n
s
:
′
′
,
l
o
c
a
t
i
o
n
s
:
[
[
c
a
n
c
e
l
P
r
o
c
e
s
s
O
n
E
x
t
e
r
n
a
l
s
F
a
i
l
:
t
r
u
e
,
c
r
e
d
e
n
t
i
a
l
s
I
d
:
′
87281
f
8
f
−
6
b
8
a
−
4409
−
9
b
93
−
9
c
d
a
c
686
e
f
c
d
′
,
d
e
p
t
h
O
p
t
i
o
n
:
′
i
n
f
i
n
i
t
y
′
,
i
g
n
o
r
e
E
x
t
e
r
n
a
l
s
O
p
t
i
o
n
:
t
r
u
e
,
l
o
c
a
l
:
′
.
′
,
r
e
m
o
t
e
:
′
h
t
t
p
s
:
/
/
192.168.0.222
/
s
v
n
/
b
i
g
a
b
c
/
j
a
v
a
/
c
o
d
e
/
a
p
p
/
s
h
a
n
j
i
x
i
n
g
′
]
]
,
q
u
i
e
t
O
p
e
r
a
t
i
o
n
:
t
r
u
e
,
w
o
r
k
s
p
a
c
e
U
p
d
a
t
e
r
:
[
class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '87281f8f-6b8a-4409-9b93-9cdac686efcd', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.0.222/svn/bigabc/java/code/app/shanjixing']], quietOperation: true, workspaceUpdater: [
class:′SubversionSCM′,additionalCredentials:[],excludedCommitMessages:′′,excludedRegions:′′,excludedRevprop:′′,excludedUsers:′′,filterChangelog:false,ignoreDirPropChanges:false,includedRegions:′′,locations:[[cancelProcessOnExternalsFail:true,credentialsId:′87281f8f−6b8a−4409−9b93−9cdac686efcd′,depthOption:′infinity′,ignoreExternalsOption:true,local:′.′,remote:′https://192.168.0.222/svn/bigabc/java/code/app/shanjixing′]],quietOperation:true,workspaceUpdater:[class: ‘UpdateUpdater’]])
}
}
stage(‘Build’) {
steps {
sh ‘cd quick.parent; mvn -DskipTests=true clean install’
echo “打包成功”
}
}
stage(‘Copy’) {
steps {
sh ‘mv quick/target/quick.jar quick.rpc/target/;mv quick.admin/target/qboss.jar quick.rpc/target/;’
sshPublisher(publishers: [sshPublisherDesc(configName: ‘22’, transfers: [sshTransfer(cleanRemote: false, excludes: ‘’, execCommand: ‘cd bin/sjx;chmod u+x *.jar;sh sjx.sh’, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: ‘[, ]+’, remoteDirectory: ‘sjx’, remoteDirectorySDF: false, removePrefix: ‘/quick.rpc/target’, sourceFiles: ‘/quick.rpc/target/qrpc.jar,/quick.rpc/target/quick.jar,**/quick.rpc/target/qboss.jar’)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
echo “copy打包成功”
}
}
}
post {
success {
echo “部署sjx到测试环境成功!”
}
}
}
jenkinsfile内容说一下具体是干什么的
sjx.sh 脚本
#!/bin/bash
pid1=ps -ef|grep java|grep drpc.jar|awk '{print $2}'
pid2=ps -ef|grep java|grep dwechat.jar|awk '{print $2}'
pid3=ps -ef|grep java|grep dboss.jar|awk '{print $2}'
echo “
p
i
d
1
,
pid1,
pid1,pid2,$pid3”
function k(){
if [ “$1” == “” ];then
echo “service $2 not found!”
else
echo “kill $1”
kill -9 $1
fi
}
k “
p
i
d
1
"
d
r
p
c
k
"
pid1" drpc k "
pid1"drpck"pid2” dwechat
k “$pid3” dboss
/usr/sbin/service drpc restart
/usr/sbin/service dwechat restart
/usr/sbin/service dboss restart