当前位置: 首页 > Linux

使用dockerMaven插件在本地构建docker镜像并发布到远程服务器

时间:2023-04-06 20:42:35 Linux

1。登录网站https://start.spring.io/生成一个基本的SpringBoot应用。2.将应用程序导入EclipseIDE并创建Application类。目录结构如下:应用代码如下:packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassApplication{@RequestMapping(value="/phone")publicStringindex(){return"HelloWorld!";}}3.在pom.xml文件中添加插件配置:com.spotifydocker-maven-plugin0.4.12microservice-eureka-demojava["java","-jar","/${project.build.finalName}.jar"]/<目录>${project.build.directory}${project.build.finalName}.jar<在/plugin>4.pom.xml文件中添加依赖:org.springframework.bootspring-boot-starter-web5.配置本地环境变量,设置docker文件构建主机(主机192.168.244.130已安装docker环境)root@ubuntu-02:~#docker-vDockerversion17.05.0-ce,build89658be本地环境变量配置如下:6.进入代码目录,执行命令“mvncleanpackagedocker:build”,项目编译成功[INFO][INFO]---maven-jar-plugin:2.6:jar(default-jar)@dockerdemo---[INFO]Buildingjar:C:\Users\Sean\Downloads\demo\demo\target\dockerdemo-0.0.1-SNAPSHOT.jar[INFO][INFO]---spring-boot-maven-plugin:1.5.4.RELEASE:repackage(default)@dockerdemo---[INFO][INFO]---docker-maven-plugin:0.4.12:build(default-cli)@dockerdemo---[信息]复制C:\Users\Sean\Downloads\demo\demo\target\dockerdemo-0.0.1-SNAPSHOT.jar->C:\Users\Sean\Downloads\demo\demo\target\docker\dockerdemo-0.0.1-SNAPSHOT.jar[INFO]构建镜像microservice-eureka-demoStep1/3:FROMjava--->d23bdf5b1b1bStep2/3:ADD/dockerdemo-0.0.1-SNAPSHOT.jar//--->e1b3c3de711cRemovingintermediatecontainera9e57b1d9883Step3/3:ENTRYPOINTjava-jar/dockerdemo-0.0.1-SNAPSHOT.jar--->Runningin7a3cdc1d112b--->1f800bf8cb24Removingintermediatecontainer7a3cdc1d112bSuccessfullybuilt1f800bf8cb24Successfullytaggedmicroservice-eureka-demo:latest[INFO]Builtmicroservice-eureka-demo[信息]----------------------------------------------------------------------[信息]构建成功[信息]--------------------------------------------------------------------[INFO]总时间:39.982s[INFO]完成时间:2017-07-23T21:51:21+08:00[INFO]最终内存:42M/393M[INFO]---------------------------------------------------------------------7。ssh连接192.168.244.130,执行命令“dockerimages”查看可用镜像:root@ubuntu-02:~#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEmicroservice-eureka-demolatest1f800bf8cb2423minutesago658MB8.执行命令“dockerrun-p8080:8080microservice-eureka-demo:latest”使用镜像microservice-eureka-demo:latest启动docker容器root@ubuntu-02:~#dockerrun-p8080:8080microservice-eureka-demo:latest。_________/\\/___'_____(_)______\\\(()\___|'_|'_||'_\/_`|\\\\\/___)||_)|||||||(_||)))'|____|.__|_||_|_||_\__,|////=========|_|==============|___/=/_/_/_/::SpringBoot::(v1.5.4.RELEASE)2017-07-2314:19:21.766INFO1---[main]com.example.demo.DemoApplication:在656842f890d3上启动DemoApplicationv0.0.1-SNAPSHOT,PID1(/dockerdemo-0.0.1-SNAPSHOT.jar由root在/)2017-07-2314:19:21.792INFO1---[main]com.example.demo.DemoApplication中启动:没有活动配置文件集,回退到默认配置文件:default2017-07-2314:19:22.402信息1---[主要]ationConfigEmbeddedWebApplicationContext:刷新org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5a2e4553:启动日期[Sun2017年7月23日14:19:22UTC];上下文层次结构的根2017-07-2314:19:31.950信息1---[主要]s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat使用端口初始化:8080(http)2017-07-2314:19:32.015信息1---[main]o.apache.catalina.core.StandardService:启动服务[Tomcat]2017-07-2314:19:32.032INFO1---[main]org.apache.catalina.core.StandardEngine:启动Servlet引擎:ApacheTomcat/8.5.152017-07-2314:19:32.467INFO1---[ost-startStop-1]o.a.c.c.C.[Tomcat].[localhost].[/]:初始化Spring嵌入式WebApplicationContext2017-07-2314:19:32.467INFO1---[ost-startStop-1]o.s.web.context.ContextLoader:RootWebApplicationContext:初始化完成于10082ms2017-07-2314:19:33.101INFO1---[ost-startStop-1]o.s.b.w.servlet.ServletRegistrationBean:映射servlet:'dispatcherServlet'到[/]2017-07-2314:19:33.141INFO1---[ost-startStop-1]o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'characterEncodingFilter'到:[/*]2017-07-2314:19:33.148INFO1---[ost-startStop-1]o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'hiddenHttpMethodFilter'至:[/*]2017-07-2314:19:33.161信息1---[ost-startStop-1]o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'httpPutFormContentFilter'至:[/*]2017-07-2314:19:33.161信息1---[ost-startStop-1]o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:'requestContextFilter'到:[/*]2017-07-2314:19:34.708信息1---[main]s.w.s.m.m.a.RequestMappingHandlerAdapter:寻找@ControllerAdvice:org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5a2e4553:启动日期[2017年7月23日星期日14:19:22UTC];上下文层次结构的根2017-07-2314:19:35.105信息1---[主要]s.w.s.m.m.a.RequestMappingHandlerMapping:映射“{[/phone]}”到公共java.lang.Stringcom.example.demo.controller.Application.index()2017-07-2314:19:35.127INFO1---[main]s.w.s.m.m.a.RequestMappingHandlerMapping:Mapped"{[/error],produces=[text/html]}"到公共org.springframework.web.servlet.ModelAndVieworg.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)2017-07-2314:19:35.138INFO1---[main]s.w.s.m.m.a.RequestMappingHandlerMapping:映射“{[/error]}”到公共org.springframework.http.ResponseEntity>org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)2017-07-2314:19:35.277信息1---[主要]o.s.w.s.handler.SimpleUrlHandlerMapping:将URL路径[/webjars/**]映射到类型为[classorg.springframework.web.servlet.resource.ResourceHttpReques的处理程序tHandler]2017-07-2314:19:35.285INFO1---[main]o.s.w.s.handler.SimpleUrlHandlerMapping:映射URL路径[/**]到类型[classorg.springframework.web.servlet.resource.ResourceHttpRequestHandler]2017-07-2314:19:35.466INFO1---[main]o.s.w.s.handler.SimpleUrlHandlerMapping:将URL路径[/**/favicon.ico]映射到[classorg.springframework.web.servlet.resource.ResourceHttpRequestHandler]2017-07-2314:19:36.180INFO1---[main]o.s.j.e.a.AnnotationMBeanExporter:在启??动时为JMX暴露注册bean2017-07-2314:19:36.449INFO1---[main]s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat在端口上启动:8080(http)2017-07-2314:19:36.477INFO1---[main]com.example.demo.DemoApplication:在17.363秒内启动DemoApplication(JVM运行19.474)9.执行命令“dockerps”,查看启动的docker容器root@ubuntu-02:~#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES08099bd4b8e1microservice-eureka-demo:latest"java-jar/docker..."27秒前Up26秒0.0.0.0:8080->8080/tcpupbeat_borg10。执行命令“dockerexec-it08099bd4b8e1bin/bash”进入docker容器。root@ubuntu-02:~#dockerexec-it08099bd4b8e1bin/bashroot@08099bd4b8e1:/#11、执行命令“ps-ef”,可以查看docker容器中启动的进程,在pom.xml文件中。xml配置文件配置的插件docker-maven-plugin的入口点,java-jar/dockerdemo-0.0.1-SNAPSHOT.jar。["java","-jar","/${project.build.finalName}.jar"]root@08099bd4b8e1:/#ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot10414:20?00:00:17java-jar/dockerdemo-0.0.1-SNAPSHOT.jarroot340014:24?00:00:00bin/bashroot4134014:26?-efroot@08099bd4b8e1:/#12。至此,使用docker插件构建docker镜像并运行docker容器完成,访问路径“http://192.168.244.130:8080/p...”,得到controller结果: