Springboot 利用脚本把本地应用程序自动部署到服务器Docker中
springboot 利用脚本把本地应用程序自动部署到服务器docker中
说明
在springboot的项目开发完毕后,需要把打包后的jar包发布到服务器的docker中
如果采用手工发布比较麻烦
采用git结合持续化部署需要搭建一套持续化部署平台,比较复杂
这里采用shell脚本的方式把本地开发好的项目自动部署到服务中并重启容器
环境准备
服务器支持采用密钥方式登录
服务器支持非管理员用户直接使用sudo执行命令,无需输入密码
部署脚本
sh/config
shopt -s expand_aliases # 启用别名 SERVER='test@hw.rstone.com.cn' echo "部署到hw.rstone.com.cn服务器" #ssh alias SSHEXEC='ssh -i /Users/test/.ssh/id_rsa.hw test@hw.rstone.com.cn' alias SSHEXECSUDO='ssh -i /Users/test/.ssh/id_rsa.hw test@hw.rstone.com.cn sudo' alias SSHSCP='scp -i /Users/test/.ssh/id_rsa.hw 'sh/deploy.sh
#!/bin/bash #脚本在执行时遇到错误立即退出 set -e #开启命令打印用于调试 #set -x #获取本执行文件的路径 currentpath=$(cd "$(dirname "$0")" && pwd) #加载配置文件 source ${currentpath}/config #获取target目录 targetpath=$(cd "$(dirname "$0")" && cd ../rstone-admin/target && pwd) echo "开始发布..." echo "拷贝target 目录下的 rstone-admin.jar 拷贝到服务器" eval SSHSCP " ${targetpath}/rstone-admin.jar ${SERVER}:/tmp/app.jar" echo "停止容器" SSHEXEC "sudo docker stop rstone-web-backend" echo "拷贝到容器映射目录" SSHEXEC "sudo cp /tmp/app.jar /docker-data/rstone-web-backend/app/app.jar" echo "启动容器" SSHEXEC "sudo docker start rstone-web-backend" echo "删除临时文件" SSHEXEC "yes | rm /tmp/app.jar" echo "发布完成"