栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

Spring Boot应用Docker化

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot应用Docker化

Surface Studio


概述

当下web服务端开发中最火的名词中绝对有微服务的一席之地,其也成为当下互联网后端服务架构演进历程中最闪亮的技术之一。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。既然服务被分割和微小化了,我们很容易想到如果将其和docker结合,让docker承载着一个个的微服务运行,如此一来将会让服务间耦合度降低,部署简洁,同时系统的架构也更加清晰,便于长期演进,基于此想法有了这篇文章的入门实践!

注: 本文原载于  My Personal Blog:CodeSheep · 程序羊


创建基于maven的spring bt项目
  • pom.xml中加依赖:


    org.springframework.boot
    spring-boot-starter-parent
    2.0.0.RELEASE

     
        org.springframework.boot
        spring-boot-starter-web
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    
  • 我们只需要在启动类中添加一个简单的restful接口就行了,为了后续浏览器能验证一下,访问/hello接口,能向浏览器返回一个 Hello Docker!的问好!

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

    @RequestMapping("/hello")    public String hello(){        return "Hello! Docker!”;
    }
}

编写Dockerfile

我们在Spring Bt项目的根目录下建立Dockerfile,用起来完成Docker镜像构建的编排:

FROM maven:3.3.3

ADD pom.xml /tmp/build/

RUN cd /tmp/build && mvn -q dependency:resolve

ADD src /tmp/build/src        #构建应用RUN cd /tmp/build && mvn -q -DskipTests=true package         #拷贝编译结果到指定目录
        && mv target/*.jar /app.jar         #清理编译痕迹
        && cd / && rm -rf /tmp/build

VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar”]

进入Docker的世界
  • 0x01. 在Spring项目根目录下根据Dockerfile来生成docker镜像

      `docker build -t springindocker .`
  • 0x02. 从刚创建的镜像来启动容器
    docker run -d -p 8080:8080 springindocker

  • 0x03. 打开浏览器,或者使用 curl 访问http://127.0.0.1:8080就可以看到web服务器里返回的Hello Docker!!!问好的字符了

至此就说明你成功将一个基于 Spring Boot 的应用 Docker 化了。

本文虽然只是以一个Demo,但一个大型的web项目无非也就是由诸多这种Rest服务,外加各种基础设施、数据库、通信、中间件以及调度来构成,每个子元素的开发也依然遵循这里的基本流程。


后记

由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!



作者:CodeSheep
链接:https://www.jianshu.com/p/c8408ccbbd64


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号