IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署


Posted in Java/Android onSeptember 25, 2021

之前博客已经谈到配置docker远程链接服务,这里再介绍如何在IDEA中配置docker,将项目部署到服务器上

前文

Docker之开启远程访问的实现

idea2021激活教程

https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?#

https://www.3water.com/article/178193.htm

去插件中心安装Docker插件,安装完重启IDEA。这个简单

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署 

配置连接远程docker,打开Docker插件,新建连接,在Engine API URL处输入服务器IP地址:2375。出现Connection successful代表链接成功,否则需要看看ip端口是否是通的

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

新建一个springboot项目,在pom文件中docker-maven-plugin插件,直接复制

<plugin>
              <groupId>com.spotify</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>1.2.1</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>clover/${project.artifactId}</imageName>
                  <!--指定标签-->
                  <imageTags>
                      <imageTag>latest</imageTag>
                  </imageTags>
                  <!--指定Dockerfile 的位置,${project.basedir}:项目的根路径下-->
                  <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
                  <!--指定远程docker api地址-->
                  <dockerHost>http://192.168.6.215:2375</dockerHost>
                  <resources>
                      <resource>
                          <!--容器中自定义jar包存放的位置,及对应的target目录-->
                          <targetPath>/</targetPath>
                          <!--本地jar包所在路径-->
                          <directory>${project.build.directory}</directory>
                          <!--需要包含本地jar包名称,对应的是Dockerfile中添加的文件名-->
                          <include>${project.build.finalName}.jar</include>
                      </resource>
                  </resources>
                  <!--以下两行是为了docker push到DockerHub使用的-->
                  <!--<serverId>docker-hub</serverId>
  <registryUrl>https://index.docker.io/v1</registryUrl>-->
              </configuration>
          </plugin>

添加个url接口,方便访问:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@RestController
public class DockerdemoApplication {

  public static void main(String[] args) {
      SpringApplication.run(DockerdemoApplication.class, args);
  }

  @RequestMapping("/test")
  public String test(){
      return "1. Hello world ! " + new SimpleDateFormat(" [yyyy-mm-dd  HH:mm:ss]").format(new Date());
  }
}

在项目根目录新建Dockerfile文件

# Docker image for springboot application
# VERSION 0.0.1
# Author: bolingcavalry

### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9

#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>

#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp

#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar

#启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]

#暴露8080端口
EXPOSE 8080

在IDEA新建dockerfile启动文件

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

Dockerfile配置详情如下图所示,请按照图中的说明进行设置,确保每个红框中都会执行到:

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

上图中最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入clean package -U -DskipTests,表示每次在构建镜像之前,都会将当前工程清理掉并且重新编译构建:

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

设置完成后,点击下图红框中的绿色三角按钮,执行此配置:

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

发布不成功可能会因为idea不是管理员权限打开的,笔者就遇到这种情况,发布失败,连不上服务器docker。或者防火墙,宿主机的端口没写对等等

在服务器上执行docker image可以查看镜像情况

在浏览器上访问地址:http://192.168.6.215:8080/test,得到响应如下图所示,可见应用在容器中正常运行:

IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

如果修改了代码,再次点击上图的三角形启动,就再次发布部署了

到此这篇关于IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署的文章就介绍到这了,更多相关idea docker镜像部署内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
springboot中一些比较常用的注解总结
Jun 11 Java/Android
详解Java实现数据结构之并查集
Jun 23 Java/Android
总结一下关于在Java8中使用stream流踩过的一些坑
Jun 24 Java/Android
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
Jun 26 Java/Android
浅谈spring boot使用thymeleaf版本的问题
Aug 04 Java/Android
Java8中Stream的一些神操作
Nov 02 Java/Android
关于MybatisPlus配置双数据库驱动连接数据库问题
Jan 22 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
Apr 07 Java/Android
Java对文件的读写操作方法
Apr 29 Java/Android
spring IOC容器的Bean管理XML自动装配过程
May 30 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 23 Java/Android
Java数据开发辅助工具Docker与普通程序使用方法
Sep 15 #Java/Android
使用springMVC所需要的pom配置
Sep 15 #Java/Android
Java网络编程之UDP实现原理解析
Sep 04 #Java/Android
Java spring单点登录系统
详解Java七大阻塞队列之SynchronousQueue
java中用float时,数字后面加f,这样是为什么你知道吗
Sep 04 #Java/Android
SpringBoot实现quartz定时任务可视化管理功能
Aug 30 #Java/Android
You might like
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python可视化text()函数使用详解
2020/02/11 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Django 返回json数据的实现示例
2020/03/05 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
个人自我鉴定怎么写
2013/10/28 职场文书
采购主管工作职责
2013/12/12 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
优秀党员申报材料
2014/12/18 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python