首页 > 其他分享 >IDEA集成docker并快速部署Springboot项目

IDEA集成docker并快速部署Springboot项目

时间:2023-08-12 18:36:04浏览次数:35  
标签:Springboot xxx jar IDEA project version 2375 docker

前言:

现在docker是我们常用的服务部署方式了,在微服务中对于springboot部署到docker一般有两种方式

1、把jar包扔给运维同学,由他们进行编写dockerfile或者其他方式部署。(不推荐)

2、由开发同学处理后把镜像或者容器上传到服务器(企业级常用方式)

下面我们就通过demo来看下方式二

1、docker开放2375端口

开放2375端口
vim /lib/systemd/system/docker.service
将13行左右内容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为下面
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务
systemctl daemon-reload
systemctl restart docker

防火墙放开2375端口,如果是云服务器记录配置安全规则
放开后可以在浏览器输入http://host:2375/version测试或者
curl http://host:2375/version

2、IDEA测试连接

upload successful

3、maven中增加plugin

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>${docker-maven-plugin.version}</version>
    <configuration>
        <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
        <imageTags>
            <imageTag>${project.version}</imageTag>
            <imageTag>latest</imageTag>
        </imageTags>
        <!--强制在每次新的构建上覆盖镜像tags-->
        <forceTags>true</forceTags>
        <baseImage>${docker.baseImage}</baseImage>
        <!--配置挂载目录-->
        <volumes>${docker.volumes}</volumes>

        <entryPoint>["sh", "-c", "java ${docker.java.opts} ${docker.java.security.egd} -jar /${project.build.finalName}.jar"]</entryPoint>

        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

4、生成镜像

upload successful

5、创建容器并测试结果

我们可以在Services控制页面看到已经生成了镜像,右键根据此镜像创建容器,并启动测试

亦可以直接使用docker命令启动

docker run -d -p 8010:8010 –name docker-demo jarvan/springboot-demo-docker

upload successful

浏览器输入:http://xxx.xxx:8081/ 进行测试

6、Dockerfile方式

在src/main/docker目录下建立Dockerfile文件

dockerfile内容

FROM java:8
VOLUME /test
ADD springboot-demo-docker-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]

maven的plugin插件内容更改

  <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>${docker-maven-plugin.version}</version>
      <configuration>
          <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
          <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
          <imageTags>
              <imageTag>${project.version}</imageTag>
              <imageTag>latest</imageTag>
          </imageTags>
          <!--强制在每次新的构建上覆盖镜像tags-->
          <forceTags>true</forceTags>
          <baseImage>${docker.baseImage}</baseImage>
          
          <!--使用dockerfile方式,在指定目录下创建Dockerfile文件-->
<dockerDirectory>src/main/docker</dockerDirectory>

          <resources>
              <resource>
                  <targetPath>/</targetPath>
                  <directory>${project.build.directory}</directory>
                  <include>${project.build.finalName}.jar</include>
              </resource>
          </resources>
      </configuration>
  </plugin>

7、源代码

代码已上传github https://github.com/JarvanBest/springboot-demo-docker.git

标签:Springboot,xxx,jar,IDEA,project,version,2375,docker
From: https://blog.51cto.com/u_11906056/7060666

相关文章

  • springboot集成log4j2日志
    目录Maven依赖log4j2.xml配置注释测试参考Maven依赖参考:https://docs.spring.io/spring-boot/docs/2.7.14/reference/htmlsingle/#howto.logging.log4j <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</a......
  • Springboot - 员工部门案例
    目录查询全部部门信息查询全部部门信息//知识点1:@RequestMapping(value="/list",method=RequestMethod.GET)等价于:@GetMapping("/list")//知识点2:privatestaticLoggerlogger=LoggerFactory.getLogger(DeptController.class);等价于@Slf4j(lombok.extern.slf......
  • SpringBoot3数据库集成
    标签:Jdbc.Druid.Mybatis.Plus;一、简介项目工程中,集成数据库实现对数据的增晒改查管理,是最基础的能力,而对于这个功能的实现,其组件选型也非常丰富;通过如下几个组件来实现数据库的整合;Druid连接池:阿里开源的数据库连接池,并且提供SQL执行的监控能力;MybatisPlus框架:基于Mybatis框......
  • SpringBoot3数据库集成
    标签:Jdbc.Druid.Mybatis.Plus;一、简介项目工程中,集成数据库实现对数据的增晒改查管理,是最基础的能力,而对于这个功能的实现,其组件选型也非常丰富;通过如下几个组件来实现数据库的整合;Druid连接池:阿里开源的数据库连接池,并且提供SQL执行的监控能力;MybatisPlus框架:基于Mybatis......
  • docker搭建Ftp服务器
    原文地址:https://www.yii666.com/blog/47876.html拉取镜像dockerpullfauria/vsftpd运行dockerrun-d-p21:21-p20:20-p65001-65006:65001-65006\-v/data/ftp:/home/vsftpd/ftp\-eFTP_USER=pgms\-eFTP_PASS=intest\-ePASV_ADDRESS=***.**.**.**\-e......
  • 在centos下安装docker
    yuminstall-yyum-utilsyum-config-manager\-add-repo\https://download.docker.com/linux/centos/docker-ce.repoyuminstalldocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-pluginsystemctlenabledocker--nowdockerps#批量安装doc......
  • springboot项目创建即运行
    springboot项目创建这是相关依赖项目如果用到Mybatis和数据库MySQL需要勾选在springboot项目中企业级最终是使用result设计模式返回数据,就是创建一个result类用于接管要返回的各种数据result类的代码publicclassResult{privateintcode;privateStringmes;......
  • SpringBoot跨域
    SpringBooot2.5.12packagecom.lenovo.lps.cost.servicecto.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.http.client.SimpleClientHttpRequestFactory;imp......
  • SpringBoot BigDecimal精度丢失
    jackjson自动丢弃了小数位最末尾的0privateBigDecimalprice;price=12.10;返回自动转为了12.1解决方案1:返回字段都用字符串2:BigDecimal序列化自定义处理packagecom.lenovo.lps.cost.integrator.config;importcom.fasterxml.jackson.core.JsonGenerat......
  • SpringBoot复习:(21)自定义ImportBeanDefinitionRegistrar
    要达到的目的:将某个包下使用了某个自定义注解(比如@MyClassMapper)的类注册到Spring容器。一、自定义注解:packagecom.example.demo.service;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)publ......