阿里出品,SpringBoot自动化部署神器!
Java中文社群
共 2475字,需浏览 5分钟
·
2022-07-06 10:22
最近发现一款阿里出品的IDEA插件
CloudToolkit
,不仅支持直接打包应用部署到远程服务器上,而且还能当终端工具使用。试用了一把这个插件,非常不错,推荐给大家!装上这个插件,IDEA一站式开发又近了一步!
CloudToolkit简介
CloudToolkit
是阿里出品的一款IDEA插件,通过它我们可以更方便地实现自动化部署,其内置的终端工具和文件上传功能,即使用来管理服务器也非常方便!这款IDEA插件不仅功能强大,而且完全免费!
安装
CloudToolkit的安装是非常简单的,直接在IDEA的插件市场中搜索Cloud Toolkit
然后进行安装即可。
![](https://filescdn.proginn.com/9f1e7dea8838694eda948adcb2fd7bd8/1cefea87747d59cb7d4d493046c6fed8.webp)
使用
接下来我们就体验下CloudToolkit的自动化部署功能,以SpringBoot应用打包部署到Docker环境为例,看看它是不是够好用。
自动化部署
插件安装完成后,打开左侧面板,右键 Host
图标我们就可以添加服务器的连接信息了,实现自动化部署之前需要先配置好连接信息;
![](https://filescdn.proginn.com/02b8c13fde961ee3e89e9ff17e7ae9d1/a535beead27444782fc462b2b995cbde.webp)
一般情况下我们如果想部署本地SpringBoot应用到Docker环境需要经过如下步骤,使用CloudToolkit我们只要配置好流程即可,这些操作它都会帮我们自动完成;
![](https://filescdn.proginn.com/719fbf3131b3f36b9e21571e3ebff640/a28e8b0eb3813ee4f660b3b882d3ff4d.webp)
首先准备好打包应用镜像需要的Dockerfile文件;
# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD mall-tiny-deploy-1.0-SNAPSHOT.jar /mall-tiny-deploy-1.0-SNAPSHOT.jar
# 声明服务运行在8088端口
EXPOSE 8088
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-deploy-1.0-SNAPSHOT.jar"]
# 指定维护者的名字
MAINTAINER macrozheng
再准备好可以自动打包应用镜像、创建并运行容器的脚本 run.sh
,这两个脚本的具体使用可以参考使用Jenkins进行自动化部署的技巧 ;
#!/usr/bin/env bash
# 定义应用组名
group_name='mall-tiny'
# 定义应用名称
app_name='mall-tiny-deploy'
# 定义应用版本
app_version='1.0-SNAPSHOT'
# 定义应用环境
profile_active='prod'
echo '----copy jar----'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker rmi ${group_name}/${app_name}:${app_version}
echo '----rm image----'
# 打包编译docker镜像
docker build -t ${group_name}/${app_name}:${app_version} .
echo '----build image----'
docker run -p 8088:8088 --name ${app_name} \
--link mysql:db \
-e 'spring.profiles.active'=${profile_active} \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d ${group_name}/${app_name}:${app_version}
echo '----start container----'
将这两个文件上传到Linux服务器上,给 run.sh
添加可执行权限;
![](https://filescdn.proginn.com/63ca7a2eb5f83d4969b856ee179a2247/6ef482cfc0db60664d0e079066180e9d.webp)
右键需要部署的项目,点击 Deploy to Host
;
![](https://filescdn.proginn.com/979a95e07e94ab7bd0a40b232f12ae80/b0b7fd04131196113b545f4e9ab00f03.webp)
然后选择把Maven打包的Jar包上传到指定目录,上传完成后执行 run.sh
脚本;
![](https://filescdn.proginn.com/fc5724e386d90912d8974f0562b863b4/68bf0d42d8e36007bf8cbe91a642c22f.webp)
接下来编辑下Maven构建的目标,只打包 mall-tiny-deploy
模块即可;
![](https://filescdn.proginn.com/b2c4f34356ddc5e0e3a91b2a8aab034b/14a392d1b54ea47df39aa46e585695f4.webp)
然后修改高级设置,配置下查看容器日志的命令;
![](https://filescdn.proginn.com/985d031f6e70bbc0e9209533a63b1cec/3eeb254be5dea03f9f1744aaf1fd6d3e.webp)
最后运行该配置,运行完成后即可直接查看应用运行日志了;
![](https://filescdn.proginn.com/46b4e5106eab32de3a8a3e974531c6a8/969206f350fc45eef147a87e4ad572e3.webp)
打开应用的Swagger页面查看下,发现已经可以正常访问了,访问地址:http://192.168.3.105:8088/swagger-ui/
![](https://filescdn.proginn.com/60a711b196877dc6ee0421083d8e4542/73da663247e382df67a620ae9eb7da44.webp)
常用功能
当然CloudToolkit的功能远不止于此,它内置了终端工具,在IDEA中管理Linux服务器,用它就够了,直接通过底部面板,点击 终端
按钮即可打开;
![](https://filescdn.proginn.com/6aa112ecaf5502946996c61e8d4ff650/798168ea22925e277b0fd20935e0815b.webp)
体验了一把这个终端工具,提示还挺全的,这下还要啥Xshell?
![](https://filescdn.proginn.com/f9c2faa49fb4eece65d8ac29b7f7e3a2/e24331be804e0b9e4bdd4f6fb96f2230.webp)
通过上传功能可以上传文件,WinSCP也用不着了!
![](https://filescdn.proginn.com/c58fa777a57b008e9d1798f4edd2598c/fa5620865622d83e89930b9e2245ae7b.webp)
总结
体验了一把阿里出品的CloudToolkit,做好配置以后,基本可以实现一键部署应用到远程服务器,说它是IDEA版的Jenkins也不为过!其内置的终端工具也是非常好用的,强烈推荐大家尝试一波!
![](https://filescdn.proginn.com/d02d21419d6f1d6f80d571efe139a212/12378c81953e1d5410ec0e0828aa579b.webp)
往期推荐
![](https://filescdn.proginn.com/6677f3b0cba29e726eca67dae39beb88/b7ba51fddadc53324acc86dc9cca513d.webp)
Java 中 for 和 foreach 哪个性能高?
![](https://filescdn.proginn.com/f0ff6bd11870bc1a093465efc697a9de/d768c6b40f29fe7a14d094bbbd53a114.webp)
面试突击60:什么情况会导致 MySQL 索引失效?
![](https://filescdn.proginn.com/26e76b2c31da1c5f0602fd4431895e95/0598b3e8ed29aeb938b0c5e11a834b1c.webp)
如何优雅的写 Controller 层代码?
评论