阿里出品,SpringBoot自动化部署神器!

最近发现一款阿里出品的IDEA插件CloudToolkit,不仅支持直接打包应用部署到远程服务器上,而且还能当终端工具使用。试用了一把这个插件,非常不错,推荐给大家!装上这个插件,IDEA一站式开发又近了一步!

CloudToolkit简介

CloudToolkit是阿里出品的一款IDEA插件,通过它我们可以更方便地实现自动化部署,其内置的终端工具和文件上传功能,即使用来管理服务器也非常方便!这款IDEA插件不仅功能强大,而且完全免费!

安装

CloudToolkit的安装是非常简单的,直接在IDEA的插件市场中搜索Cloud Toolkit然后进行安装即可。

0ec6b7e773e92b8c8cd0bc79f47a6c75.png

使用

接下来我们就体验下CloudToolkit的自动化部署功能,以SpringBoot应用打包部署到Docker环境为例,看看它是不是够好用。

自动化部署

  • 插件安装完成后,打开左侧面板,右键Host图标我们就可以添加服务器的连接信息了,实现自动化部署之前需要先配置好连接信息;

b132fc3987b0430b47b93b491bbcaa23.png
  • 一般情况下我们如果想部署本地SpringBoot应用到Docker环境需要经过如下步骤,使用CloudToolkit我们只要配置好流程即可,这些操作它都会帮我们自动完成;

72fc327c64490b44ee7a429499ca785b.png
  • 首先准备好打包应用镜像需要的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添加可执行权限;

a214245006ab58e07aa7513efae254ca.png
  • 右键需要部署的项目,点击Deploy to Host

7f634faa966a4e562ce6a1d443e62c5e.png
  • 然后选择把Maven打包的Jar包上传到指定目录,上传完成后执行run.sh脚本;

ae695454092a401e88fc209a59ecf7ee.png
  • 接下来编辑下Maven构建的目标,只打包mall-tiny-deploy模块即可;

56b2e32a449560954be1e0d58b3084de.png
  • 然后修改高级设置,配置下查看容器日志的命令;

c770acb1179f5b5afa0e4c6c591a11fa.png
  • 最后运行该配置,运行完成后即可直接查看应用运行日志了;

358a3ed07f2d4eba03ec12711eb6b3fc.png
  • 打开应用的Swagger页面查看下,发现已经可以正常访问了,访问地址:http://192.168.3.105:8088/swagger-ui/

1a4c842fe338195014adb859e8ba3cd1.png

常用功能

  • 当然CloudToolkit的功能远不止于此,它内置了终端工具,在IDEA中管理Linux服务器,用它就够了,直接通过底部面板,点击终端按钮即可打开;

2d09b679f5ae7675ed6ff9643eca505e.png
  • 体验了一把这个终端工具,提示还挺全的,这下还要啥Xshell?

148b9c823294cd7e126321239bbb751d.png
  • 通过上传功能可以上传文件,WinSCP也用不着了!

59313b1b7ae9ced60d0eacd6cfb46785.png

总结

体验了一把阿里出品的CloudToolkit,做好配置以后,基本可以实现一键部署应用到远程服务器,说它是IDEA版的Jenkins也不为过!其内置的终端工具也是非常好用的,强烈推荐大家尝试一波!

43e29e31fd7ca92a73b97a37c262bb90.gif

往期推荐

e8d8acb9925ba41b08e063342348ca2d.jpeg

Java 中 for 和 foreach 哪个性能高?


432b066dc2941cb47251a26d9c2cf01e.jpeg

面试突击60:什么情况会导致 MySQL 索引失效?


45792033c137188b833667fc5543652b.jpeg

如何优雅的写 Controller 层代码?


e1f6582f61883df81a40f4d697268a36.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊异步编程的 7 种实现方式

最近有很多小伙伴给我留言,能不能总结下异步编程,今天就和大家简单聊聊这个话题。早期的系统是同步的,容易理解,我们来看个例子同步编程当用户创建一笔电商交易订单时,要经历的业务逻辑流程还是很长的,每一…

二进制补码乘法除法_二进制乘法和除法

二进制补码乘法除法1)二进制乘法 (1) Binary Multiplication) Binary numbers can be multiplied using two methods, 二进制数可以使用两种方法相乘, Paper method: Paper method is similar to multiplication of decimal numbers on paper. 纸张方法&#xff1a…

控制JSP头部引入外部文件编译后在第一行

2019独角兽企业重金招聘Python工程师标准>>> 一.错误引入方法 假设当前需要在JSP页面输出xml格式数据,需要引入以下外部文件,通过以下的方式来引入则无法正常输出数据: 访问页面会报错误:xml的声明不在文档的第一行 看…

4种常见的缓存模式,你都知道吗?

概述 在系统架构中,缓存可谓提供系统性能的最简单方法之一,稍微有点开发经验的同学必然会与缓存打过交道,最起码也实践过。如果使用得当,缓存可以减少响应时间、减少数据库负载以及节省成本。但如果缓存使用不当,则可能…

面试突击63:distinct 和 group by有什么区别?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)在 MySQL 中,最常见的去重方法有两个:使用 distinct 或使用 group by,那它们有什…

从20s优化到500ms,我用了这三招

前言接口性能问题,对于从事后端开发的同学来说,是一个绕不开的话题。想要优化一个接口的性能,需要从多个方面着手。本文将接着接口性能优化这个话题,从实战的角度出发,聊聊我是如何优化一个慢查询接口的。上周我优化了…

面试拆解:系统上线后CPU急速飙升,该怎么排查?

上次面试官问了个问题:应用上线后Cpu使用率飙升如何排查?其实这是个很常见的问题,也非常简单,那既然如此我为什么还要写呢?因为上次回答的时候我忘记将线程PID转换成16进制的命令了。所以我决定再重温一遍这个问题&…

MySQL 死锁了,怎么办?

作者:小林coding提纲如下:正文有个业务主要逻辑就是新增订单、修改订单、查询订单等操作。然后因为订单是不能重复的,所以当时在新增订单的时候做了幂等性校验,做法就是在新增订单记录之前,先通过 select ... for upda…

10 张图搞懂服务注册发现机制

在微服务架构或分布式环境下,服务注册与发现技术不可或缺,这也是程序员进阶之路必须要掌握的核心技术之一,本文通过图解的方式带领大家轻轻松松掌握。引入服务注册与发现组件的原因先来看一个问题,假如现在我们要做一个商城项目&a…

ASP.NET 5 Beta8 已经发布

Microsoft ASP.NET and Web Tools 2015 (Beta8) http://www.microsoft.com/en-us/download/details.aspx?id49442 .net core 完成了98%,绝大部分类库完成了跨平台开发,已经基本可用,下一版本为RC,发布时间为12月,将可…

面试突击65:HTTPS有什么优点?说一下它的执行流程?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)说到 HTTPS 相信大部分人都是不陌生,因为目前我们使用的绝大数网站都是基于 HTTPS 的,比如以…

Cell.reuseIdentifier 指什么

Cell.reuseIdentifier 指的是 默认为空,如果不定义,在执行 [_tableView registerNib:templateCellNib forCellReuseIdentifier:_templateCell.reuseIdentifier]; 时,提示 must pass a valid reuse identifier to -[UITableView registerNib:f…

缓存穿透、缓存雪崩、缓存击穿?

背景 在现代软件架构中,缓存的应用已经非常普及。缓存的使用在面试和实践中都是避不开的硬技能、硬知识,如果你说还不太熟悉缓存的使用,可能都不好意思说自己是程序员。这篇文章,带大家进一步学习在缓存使用中不得不考虑三个特殊场…

如何防止订单重复支付?

大家好,我是磊哥,想必大家对在线支付都不陌生,今天和大家聊聊如何防止订单重复支付。看看订单支付流程我们来看看,电商订单支付的简要流程:订单钱包支付流程从下单/计算开始:下单/结算:这一步虽…

3 分钟快速上手 Spring 事件机制

小伙伴们好呀~ 今天来和大家分享下这个 Spring事件机制内容概览image-20210829132019387原理image-20210828184103069这个熟悉 观察者模式 的小伙伴应该一眼就看出来啦~其实就是个简单版的 发布-订阅模式有三个核心类👇事件 ApplicationEvent事件发布器 Application…

mis dss gis_MIS中的决策支持系统(DSS)

mis dss gisThe Decision Support System is always helpful to management people to take decisions/decisions and finds the key business insights from available information systems. 决策支持系统始终有助于管理人员做出决策/决策,并从可用的信息系统中找到…

使用Grunt构建自动化开发环境

1、准备工作 1)首页确保电脑上网,以及能够访问https://registry.npmjs.org/,因需从此网站中下载安装相应的插件; 2)电脑安装Node.js,Grunt及Grunt插件都是基于node.js运行的;如果你电脑上未装node.js&#…

面试突击66:请求转发和请求重定向有什么区别?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)在 Java 中,跳转的实现方式有两种:请求转发和请求重定向,但二者是完全不同的&…

99%的Java程序员会踩的6个坑

前言作为Java程序员的你,不知道有没有踩过一些基础知识的坑。有时候,某个bug,你查了半天,最后发现竟然是一个非常低级的错误。有时候,某些代码,这一批数据功能正常,但换了一批数据就出现异常了。…

BigDecimal 的 4 个坑,你踩过几个?

背景 一直从事金融相关项目,所以对BigDecimal再熟悉不过了,也曾看到很多同学因为不知道、不了解或使用不当导致资损事件发生。所以,如果你从事金融相关项目,或者你的项目中涉及到金额的计算,那么你一定要花时间看看这篇…