九、流水线部署项目
一、修改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。

浙公网安备 33010602011771号