maven实现docker自动化部署插件的使用

 更新时间:2021年06月21日 15:19:11   作者:笨_鸟_不_会_飞  
本文主要介绍了maven实现docker自动化部署插件的使用,分享给大家,感兴趣的小伙伴们可以参考一下

构建开发项目

首先打开我们的IDEA构建一个我们的开发项目,配置如下:

在这里插入图片描述

接着打开我们的pom.xml修改build的配置,修改以后的代码如下:

<build>
        <finalName>docker-automation-demo</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.github.lazyBoyl</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0-release</version>
                <configuration>
                    <!-- 需要上传到服务器的jar包所在的位置 -->
                    <jarTargetPath>${basedir}/target/docker-automation-demo.jar</jarTargetPath>
                    <!-- 创建镜像的dockerFile的本地配置文件的路径 -->
                    <dockerFilePath>${basedir}/dockerFile/Dockerfile</dockerFilePath>
                    <!-- 我们的dockerFile文件和相应的jar包的文件上传到服务器的路径 -->
                    <dockerImagesPath>/home/app/docker/test/</dockerImagesPath>
                    <!-- 该工程启动的时候的日志文件的挂载,前面的为本地的服务器的路径,分号后面的为docker容器中的文件路径 -->
                    <containerRunShare>/home/app/logs/docker-plugin-test/log/:/app/www/logs/docker-plugin-test/log/</containerRunShare>
                    <!-- 该工程启动的时候的端口映射,多个端口那就对应着启动多少个容器 -->
                    <containerRunPorts>
                        <containerRunPort>8088:8088</containerRunPort>
                    </containerRunPorts>
                    <options>
                        <!-- 服务器的ip:端口,账号,密码 -->
                        <option>
                            10.10.10.114:22,root,123456
                        </option>
                    </options>
                </configuration>
                <executions>
                    <execution>
                        <!-- 设置该插件的执行的生命周期为package完成以后执行,若不想绑定就将executions这块的代码注释了,后面就不会在打包好以后再去执行docker插件的操作 -->
                        <phase>package</phase>
                        <goals>
                            <!--phase与goal是绑定的关系,当g到达了phase阶段的时候就会去执行goal,此处的值固定为dockerMavenPlugin,因为插件给予他的名字就是dockerMavenPlugin -->
                            <goal>dockerMavenPlugin</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

接着我们在我们的主入口类的同级目录底下创建一个controller包,同时在该目录底下创建一个测试的TestController.java的测试入口类,代码如下:

package com.docker.automation.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author linzf
 * @since 2019/5/28
 * 类描述:
 */
@RestController
@RequestMapping("/test")
public class TestController {

    private Logger logger = LoggerFactory.getLogger(TestController.class);

    /**
     * 功能描述:实现消息的发送
     *
     * @param msg 前端发送的消息
     * @return 返回结果
     */
    @GetMapping("sendMsg")
    public String sendMsg(@RequestParam("msg") String msg) {
        logger.debug("收到请求过来的消息:{}", msg);
        return msg;
    }

}

最后记得在application.yml里面配置上我们的端口未8088

配置dockerFile的配置文件

接着在工程的src的同级目录创建一个dockerFile文件夹,同时在该文件夹底下创建一个Dockerfile文件

在这里插入图片描述

接着打开DockerFile配置文件配置信息如下:

FROM base-jdk
   MAINTAINER linzf <282245889@qq.com>
   RUN mkdir -p /app/www/logs/docker-automation-demo/log/
   RUN mkdir -p /home/app/
   ADD docker-automation-demo.jar /home/app/app.jar
   CMD java -jar -Xms128m -Xmx1536m /home/app/app.jar

到此处我们就完成了我们的工程的docker的配置,如何创建基础镜像、如何部署docker这些大家可以直接看我的docker系列文章:https://blog.csdn.net/linzhefeng89/article/details/78413387

最后我们直接点击我们IDEA的package命令进行打包,那么我们的maven插件会自动帮我们将我们的包打包部署到我们的docker容器中。

在这里插入图片描述

接着我们直接访问我们的微服务的地址:http://10.10.10.114:8088/test/sendMsg?msg=wytuy

到此为止我们就完成了我们的自动化部署插件的讲解,具体代码请查看github的地址:
https://github.com/lazyboyl/docker-automation-demo

到此这篇关于maven实现docker自动化部署插件的使用的文章就介绍到这了,更多相关maven docker自动化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis入门学习教程(一)-MyBatis快速入门

    MyBatis入门学习教程(一)-MyBatis快速入门

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,这篇文章主要给大家分享MyBatis入门学习教程(一)-MyBatis快速入门,需要的朋友可以参考下
    2015-08-08
  • 浅析JDBC的使用方法

    浅析JDBC的使用方法

    这篇文章主要介绍了JDBC的使用方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • Nacos设置为windows自启动服务的步骤详解

    Nacos设置为windows自启动服务的步骤详解

    这篇文章给大家介绍了Nacos设置为windows自启动服务的操作步骤,文中通过代码示例和图文结合讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-12-12
  • 为什么mybatis中的SqlSession一定要关闭

    为什么mybatis中的SqlSession一定要关闭

    这篇文章主要介绍了为什么mybatis中的SqlSession一定要关闭,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring MVC利用Swagger2如何构建动态RESTful API详解

    Spring MVC利用Swagger2如何构建动态RESTful API详解

    这篇文章主要给大家介绍了关于在Spring MVC中利用Swagger2如何构建动态RESTful API的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-10-10
  • Java线性结构中栈、队列和串的基本概念和特点详解

    Java线性结构中栈、队列和串的基本概念和特点详解

    前几天小编给大家介绍了Java线性结构中的链表,除了链表这种结构之外,实际上还有栈、队列、串等结构,那么这些结构又有哪些特点呢,本文就给大家详细的介绍一下,感兴趣的小伙伴跟着小编一起来看看吧
    2023-07-07
  • Java实现度分秒坐标转十进制度

    Java实现度分秒坐标转十进制度

    随着技术的发展,十进制度因其精确性和便捷性在现代应用中越来越受到青睐,下面我们就来看看如何使用Java实现度分秒坐标转十进制度吧
    2024-12-12
  • mybatis项目兼容mybatis-plus问题

    mybatis项目兼容mybatis-plus问题

    这篇文章主要介绍了mybatis项目兼容mybatis-plus问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 一种求正整数幂的高效算法详解

    一种求正整数幂的高效算法详解

    本篇文章是对java中一种求正整数幂的高效算法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 多个JDK版本(Java 8、Java 17、Java 21)下载和切换

    多个JDK版本(Java 8、Java 17、Java 21)下载和切换

    为了在实际中可以任意选择所需的JDK版本,需要将多个JDK版本进行切换,本文主要介绍了多个JDK版本(Java 8、Java 17、Java 21)下载和切换,感兴趣的可以了解一下
    2025-04-04

最新评论