maven docker自动化部署 maven实现docker自动化部署插件的使用
笨_鸟_不_会_飞 人气:0想了解maven实现docker自动化部署插件的使用的相关内容吗,笨_鸟_不_会_飞在本文为您仔细讲解maven docker自动化部署的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:maven,docker自动化部署,maven,自动化部署,下面大家一起来学习吧。
构建开发项目
首先打开我们的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
加载全部内容