一、修改SSH Server配置
找到SSH server:
修改远程路径从/data
改成/
。我这里的my_server0是腾讯云主机。
二、配置流水线项目
还是使用原来的my_pipeline项目,进入my_pipeline的配置页面:
定义
选择Pipeline script from SCM
。并配置gitee仓库url和选择登录账号。
选择分支和Jenkinsfile路径。
三、编写Jenkinsfile
进入流水线语法并生成Jenkins命令:
配置SSH server:
命令如下:
cd /data
sudo docker stop my_test || true
sudo docker rm my_test || true
sudo docker rmi my_test || true
sudo docker build -t my_test .
sudo docker run -d --name my_test -p 8500:8500 --privileged=true my_test:latest
生成流水线脚本:
这个脚本主要是将jar包通过SSH Server上传到服务器,并部署到Docker中。
在my_test项目的跟路径新建Jenkinsfile
,并将上面的流水线脚本复制到下面的step中:
pipeline {
agent any
tools {
maven 'my_maven'
}
stages {
stage('Build') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
stage("Deploy") {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'my_server0', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
cd /data
sudo docker stop my_test || true
sudo docker rm my_test || true
sudo docker rmi my_test || true
sudo docker build -t my_test .
sudo docker run -d --name my_test -p 8500:8500 --privileged=true my_test:latest''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/data', remoteDirectorySDF: false, removePrefix: 'target/', sourceFiles: 'target/my-test-0.0.1-SNAPSHOT.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}
Deploy里面的steps就是上面生成的流水线脚本。并提交到git中。
构建流水线:
可以看到所有的stage
,还有每个stage
的执行时间。
查看日志:
从控制台中看到构建成功:
my_server0是腾讯云主机,可以登录到腾讯云主机并进入/data
目录,运行ls
可以看到my-test-0.0.1-SNAPSHOT.jar。