java版spring cloud+spring boot 社交电子商务平台 (二十四)springboot整合docker

这篇文篇介绍,怎么为 springboot程序构建一个docker镜像。docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

准备工作

环境:

  • linux环境或mac,不要用windows
  • jdk 8
  • maven 3.0
  • docker

对docker一无所知的看docker教程。

创建一个springboot工程

引入web的起步依赖,创建一个 Controler:

@SpringBootApplication
@RestController
public class SpringbootWithDockerApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello Docker World";
    }
    public static void main(String[] args) {
        SpringApplication.run(SpringbootWithDockerApplication.class, args);
    }
}

将springboot工程容器化

Docker有一个简单的dockerfile文件作为指定镜像的图层。让我们先创建一个 dockerFile文件:

src/main/docker/Dockerfile:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c ‘touch /app.jar‘
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

我们通过maven 构建docker镜像。

在maven的pom目录,加上docker镜像构建的插件

<properties>
   <docker.image.prefix>springio</docker.image.prefix>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.11</version>
            <configuration>
                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

通过maven 命令:

第一步:mvn clean

第二步: mvn package docker:bulid ,如下:

Step 2/6 : VOLUME /tmp
—> Running in a98be3878053
—> 8286e98b54c5
Removing intermediate container a98be3878053
Step 3/6 : ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar
—> c6ce13e50bbd
Removing intermediate container a303a3058869
Step 4/6 : RUN sh -c ‘touch /app.jar’
—> Running in cf231afe700e
—> 9a0ec8936c00
Removing intermediate container cf231afe700e
Step 5/6 : ENV JAVA_OPTS “”
—> Running in e192597fc881
—> 2cb0d73bbdb0
Removing intermediate container e192597fc881
Step 6/6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
—> Running in ab85f53fcdd8
—> 60fdb5c61692
Removing intermediate container ab85f53fcdd8
Successfully built 60fdb5c61692
[INFO] Built forezp/springboot-with-docker
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 01:45 min
[INFO] Finished at: 2017-04-19T05:37:44-07:00
[INFO] Final Memory: 19M/48M
[INFO] ————————————————————————

电子商务社交平台源码请加企鹅求求:叁五叁六贰四柒贰五九

原文地址:https://www.cnblogs.com/springfresh/p/11022083.html

时间: 2024-08-03 17:20:44

java版spring cloud+spring boot 社交电子商务平台 (二十四)springboot整合docker的相关文章

java版spring cloud+spring boot 社交电子商务平台-关于Spring Cloud的核心特性

SOA和微服务的区别 其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别:微服务架构强调业务系统需要彻底的组件化和服务化,一个组件就是一个产品,可以独立对外提供服务微服务不再强调传统SOA架构里面比较重的ESB企业服务总线微服务强调每个微服务都有自己独立的运行空间,包括数据库资源.微服务架构本身来源于互联网的思路,因此组件对外发布的服务强调了采用HTTP Rest API的方式来进行微服务的切分粒度会更小总结:微服务架构是 SOA 架构思想的一种扩展,更

java版spring cloud+spring boot 社交电子商务平台(九)使用Swagger2构建强大的RESTful API文档(1)

由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端. 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发.Android开发或是Web开发等.为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTf

java版spring cloud+spring boot+redis多租户社交电子商务平台(十二)断路器监控(Hystrix Dashboard)

b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.在我的第四篇文章断路器讲述了如何使用断路器,并简单的介绍了下Hystrix Dashboard组件,这篇文章更加详细的介绍Hystrix Dashboard. 一.Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型.断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标.Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化

java版spring cloud+spring boot 社交电子商务平台-创建“服务提供方”

下面我们创建提供服务的客户端,并向服务注册中心注册自己.本文我们主要介绍服务的注册与发现,所以我们不妨在服务提供方中尝试着提供一个接口来获取当前所有的服务信息. 电子商务社交平台源码请加企鹅求求:叁五叁陆贰肆柒贰五玖 首先,创建一个基本的Spring Boot应用.命名为eureka-client,在pom.xml中,加入如下配置: <parent> <groupId>org.springframework.boot</groupId> <artifactId&g

java版spring cloud+spring boot+redis社交电子商务平台(十)使用Swagger2构建强大的RESTful API文档(2)

添加文档内容在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容.如下所示,我们通过@ApiOperation注解来给API增加说明.通过@ApiImplicitParams.@ApiImplicitParam注解来给参数增加说明. @RestController @RequestMapping(value="/users") // 通过这里配置使下面的映射都在/user

java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security

鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 通用框架:maven+springmvc+mybatis+spring cloud+spring boot+redis 核心技术:分布式.云服务.微

Spring MVC+mybatis+spring cloud+spring boot+spring

分布式.微服务.云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 通用框架:maven+springmvc+mybatis+spring cloud+spring boot+redis 核心技术:分布式.云服务.微服务.服务编排 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现.注册.配置中心.消息总线.负载

Spring Cloud+Spring Boot 自学01

>>>>>>主要内容:Spring Cloud+Spring Boot初识和spring boot环境搭建 >>>>>>欢迎大家指正,发送你的问题一起讨论! 简介: Spring Cloud: Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具.它位微服务架构中涉及的配置管理. 服务治理.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态 管理等操作提供了一种简单的开发方式. Sr

性能优化分析Spring Cloud ELK+kafka日志分析平台

一.概述 在笔者的上一篇博客介绍了Spring Cloud ELK+kafka日志分析平台的搭建,http://xuyangyang.club/articles/2018/05/24/1527176074152.html,但是笔者在测试环境中发现,在logstash采用了grok插件去处理日志埋点和解析的时候发现了高资源占用,在阿里云8核16G的服务器部署后,测试环境大概每秒不超过几百条的日志的解析下竟然CPU占用高达95%左右,笔者分析了其中的原因,首先由于几个服务的日志格式相关配置还没有落地