Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤

记录从打包到服务器配置上线全流程

安装docker

详细步骤请戳这里

用yum源安装用yum源安装
查看是否已安装docker列表

yum list installed | grep docke

安装docker

yum -y install docker

-y表示不询问安装,直到安装成功,安装完后再次查看安装列表

开放2375端口,开启远程访问

vim /usr/lib/systemd/system/docker.service

这行:

ExecStart=/usr/bin/dockerd-current \

替换为:

ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

重新加载docker配置

systemctl daemon-reload // 1,重新加载配置文件
systemctl restart docker // 2,重启docker

查看端口是否开启

netstat -nptl

直接curl看是否生效

curl http://127.0.0.1:2375/version

虽然开放此端口打包程序很方便,但是会导致一些安全问题,因此 可以限制访问IP来解决,在云服务器中设置安全组即可

IDEA链接docker

第一步,远程链接docker:

成功后可见:

打镜像包

大致流程如下,采用maven绑定的方式进行打包镜像,然后根据该镜像建立一个docker容器,启动容器,即可
首先我们先创建一个DockerFile,路径参考:

DockerFile文件内容如下:

FROM java:8
VOLUME /tmp
#docker-day1-1.0.jar为项目打包为jar包的名字,app.jar为别名
ADD docker-day1-1.0.jar app.jar
#运行的时候对外提供的端口默认是8090,即便你在这里声明了3000也不会改变默认的端口8090
EXPOSE 8090
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

然后在pom文件里面配置docker-maven-plugin插件,在plugins节点下,添加一个plugin,内容如下:

<!--使用docker-maven-plugin插件-->
  <plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.0.0</version>
  <!--将插件绑定在某个phase执行-->
  <executions>
   <execution>
   <id>build-image</id>
   <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
   <phase>package</phase>
   <goals>
    <goal>build</goal>
   </goals>
   </execution>
  </executions>
  <configuration>
   <!--指定生成的镜像名-->
   <imageName>jason/${project.artifactId}</imageName>
   <!--指定标签-->
   <imageTags>
   <imageTag>latest</imageTag>
   </imageTags>
   <!--指定 Dockerfile 路径-->
   <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
   <!--指定远程 docker api地址-->
   <dockerHost>http://58.87.113.58:2375</dockerHost>
   <!--这里是复制 jar 包到 docker 容器指定目录配置 -->
   <resources>
   <resource>
    <targetPath>/</targetPath>
    <!--jar 包所在的路径 此处配置的 即对应 target 目录-->
    <directory>${project.build.directory}</directory>
    <!--需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
    <include>${project.build.finalName}.jar</include>
   </resource>
   </resources>
  </configuration>
  </plugin>

配置完成,现在使用maven package,即可将我们的jar包打成docker镜像,可以使用idea右侧的快捷方式,
也可以使用命令:

mvn package

完成后,我们会在这里看见我们刚打好的镜像包

运行该镜像,需要使用到docker的容器来承载它,我们右键创建

设置镜像名称,设置IP映射即可,我这里项目的port是8090,容器对外开放设置为8091

设置完之后我们点击Run,访问我们提前写好的测试接口,测试结果

那么问题来了,我们开发的时候改完代码就需要发布一次,不可能每次都先点一下package然后再run是吧,这样多捞啊,我们把这两个步骤串起来,不就行了吗
继续编辑我们刚刚的配置,添加一个maven步骤即可

那么我们再次修改代码后,再点击Run,即可在线上看到最新的程序了,至此一个简单的一键部署就完成了

附:java源码下载

到此这篇关于Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤的文章就介绍到这了,更多相关Linux+Docker+SpringBoot+IDEA一键自动化部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Idea中SpringBoot多模块项目的建立实现

    What 内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目 Why 便于维护 将一个大的单体项目分成多个子模块有利于模块间的维护, 删除或移动单个模块时对其他模块的影响也比较小 单个模块还可以复用 共享依赖 只需要在父类中定义公共的依赖项,子类模块都会共享父类的依赖项 在大型项目中会使得代码更容易简洁. How 1.父模块 创建父项目(SpringBoot) 删除不需要的目录 去除src .mvn mvnw mvnw.cmd 文件 pom packagin

  • SpringBoot在IDEA中实现热部署(JRebel实用版)

    JRebel简介: JRebel是与应用程序服务器集成的JVM Java代理,可使用现有的类加载器重新加载类.只有更改的类会重新编译并立即重新加载到正在运行的应用程序中,JRebel特别不依赖任何IDE或开发工具(除编译器外).但是,与您的IDE紧密集成仍然很不错.请记住:只要您用新文件覆盖旧类文件,JRebel就会重新加载您的更改并减少重新部署的时间. 顺便整理下步骤防止以后忘记: 在Java开发的过程选择一个适合自己的IDE是很重要的,每次修改代码都需要重新的编译.重启,如何解决这个问题?.

  • idea2020.1设置多个spring boot的service启动的实现

    2020.1版本默认没有开启多实例启动 底部找到service 在左侧选择运行失败的spring boot应用,右键 edit conf 勾选,确定,重启 搞定! 到此这篇关于idea2020.1设置多个spring boot的service启动的文章就介绍到这了,更多相关idea2020.1中springboot启动内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • IDEA搭建SpringBoot离线工程的方法

    SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形式上来说,SpringBoot完全抛弃了繁琐的XML文件配置方式,而是替代性地用注解方式来实现,虽然本质来说,是差不多的(类似包扫描,注解扫描,类加载之类). (2)SpringBoot集成的插件更多,从而使用很多服务,都只是引入一个依赖,几个注解和Java类就可以用了,具体的参考相关手册. (3)

  • Idea打包springboot项目没有.original文件解决方案

    今天在接手别人的一个项目的时候遇到一个坑,坑死我了:是一个打包的问题,好不容易我把代码写完了准备打包测试了,结果java -jar xxx.jar 运行失败(xxx.jar中没有主清单属性): 遇到这个问题后我就百度+谷歌,几乎翻遍了,网上无非就是两种解决方案一种是build artifacts 还有一种是mvn package ,前者终于是实现了,但是目录里面一堆jar包没有打在一个jar 文件中,于是放弃:后者试了半天也没发现有啥问题,后来找其他项目试了试,后来发现其他项目target下面都

  • IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在

    本地启动springboot项目一直报一个工具类的找不到,但是我看了好几次,那个类明明就在项目中,不知道为什么一启动项目就报错,,说这个包xxxx不存在,,弄了我一晚上没睡好觉,,整的我都快开始怀疑人生了,.我是谁?我在那?我还适合敲代码吗? Error:(3, 38) java: 程序包org.springframework.stereotype不存在 Error:(4, 47) java: 程序包org.springframework.web.bind.annotation不存在 Error

  • IDEA创建springboot + mybatis项目全过程(步骤详解)

    鉴于隔很久再在IDEA新建springboot项目时,会出现对步骤不确定的情况,因此,写下这篇博客记录创建一个可运行的springboot+mybatis项目的全过程. 步骤如下: 1.打开IDEA 2.File ==> new ==> project ,如图: 3.选择spring Initializr ==> 右边的Project SDK我选的是我已经安装的1.8版本,其他默认 ==> 点击next 4.填写Group (自己随意就行,我的是cn + 个人英文名 + study

  • springboot+idea热部署的实现方法(自动刷新)

    近来在使用idea做springboot的项目,但是发现每次修改之后我都需要重新将项目关闭再开启,这样比较繁琐,发现通过热部署的方式让我们可以一边修改我们的项目,然后在页面中直接通过刷新展示出来 spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

  • idea使用docker插件实现一键自动化部署

    目录 环境: 一. docker开启远程连接访问 安装配置idea的docker插件 创建项目,并配置 一 . 创建项目 二. 配置项目 maven打包,生成镜像 创建容器,项目部署到docker 修改项目,一键部署 参考 环境: ​ jdk1.8及以上. Maven 3.2+ ​ idea ​ docker 一. docker开启远程连接访问 首先我们要开启docker的远程连接访问.保证不是docker所在的服务器,也能够远程访问docker. Linux版的docker: 修改docker

  • SpringBoot之瘦身部署的详细步骤

    一.前言 SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼: 编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了. 这个时候如果想要对线上运行工程有一些微调,则非常痛苦 二.瘦身前的Jar包 Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可以的- SpringBoot编译出来的Jar包中,磁盘占用大的,是一些外部依赖库(jar包),例如:

  • Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    目录 Jenkins+Docker 一键自动化部署 SpringBoot 项目 一.安装docker 1.确保 yum 包更新到最新 2.卸载旧版本(如果安装过旧版本的话) 3.安装需要的软件包 4.设置yum源 5.安装docker 6.启动和开机启动 7.验证安装是否成功 二.安装Jenkins 1.安装Jenkins 2.初始化Jenkins 2.1 解锁Jenkins 2.2 安装插件 2.3 创建管理员用户 三.系统配置 1. 安装需要插件 2. 配置Maven 四.创建任务 1. 新

  • 基于Docker与Jenkins实现自动化部署的原理解析

    原理:Jenkins构建(开发提交代码到代码管理平台),Jenkins处理(Jenkins获取远程代码,自动将源代码实现打包,执行shell脚本启动). Linux安装Docker sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-

  • Rancher+Docker+SpringBoot实现微服务部署、扩容、环境监控

    目录 前言 一.前置需求 1.linux虚拟机或系统 2.创建好docker环境 3.写一个简单的微服务并创建为docker镜像 二.安装Rancher 1.拉取rancher镜像 2.启动rancher容器 3.访问rancher 三.配置rancher 1.把语言改为中文 2.创建rancher环境 3.添加一个主机 4.为主机添加应用 5.为应用添加服务 四.扩容 五.状态监控 1.查看 cpu.内存.网络.存储 状态 2.查看日志 六.访问控制 七.补充 前言 Rancher 是一套容器

  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写出来也是为了让大家避免重复踩坑 几个注意点: 下方shell命令绝大部分都需要管理员权限,所以如果你使用的用户不是root,则都要加上sudo 对于较复杂的命令我都提供了注释版和无注释版,无注释版是为了让你复制起来方便 准备工作 CentOS 7.x Docker Jenkins 一份支持 dock

  • IDEA 集成 docker 实现远程部署的详细步骤

    1. docker 服务器开启远程访问 登录 docker 所在的远程服务器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改时确认自己的账户拥有相应权限 主要操作是找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 这一行,注释掉,重新添加一行,在后面新增-H tcp://0.0.0.0:2375表示打开2

  • springBoot 插件工具热部署 Devtools的步骤详解

    第一步添加jar包: <!-- 这个依赖是热部署的(devtools)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> <

  • spring boot项目生成docker镜像并完成容器部署的方法步骤

    一.问题产生    把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错. 二.部署步骤 1.利用maven或者gradle完成打包工作,打成jar包的形式. 2.在项目中的任意位置创建Dockerfile文件,本人的文件如下: FROM java:8 VOLUME /tmp ADD front-1.0-SNAPSHOT.jar front.jar RUN bash -c 'touch /front.jar'

随机推荐