博客
关于我
springboot与docker集成三步曲之项目打包部署
阅读量:156 次
发布时间:2019-02-26

本文共 2837 字,大约阅读时间需要 9 分钟。

Spring Boot项目打包到Docker镜像的完整指南

前文我们已经构建了JDK运行环境的镜像,现在主要任务是将Spring Boot项目打包到该镜像中,形成一个新的镜像springboot-docker。通过这个镜像,我们可以轻松启动容器,并通过端口映射访问我们的Spring Boot项目。


1. 构建Spring Boot项目,编写pom.xml文件

首先,我们需要编写一个pom.xml文件来定义项目的依赖和打包配置。以下是完整的pom.xml文件内容:

4.0.0
com.xxx
springboot-docker
0.0.1-SNAPSHOT
jar
springboot-docker
http://maven.apache.org
UTF-8
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
1.1.1
local/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar

2. 编写启动类App.java

接下来,我们需要编写一个启动类App.java,这个类既充当Spring Boot的启动类,也同时作为一个简单的控制器。

package com.xxx.springbootwithdocker;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }    @GetMapping("/")    public String index() {        return "{\"id\":\"1001\",\"content\":\"this is a docker\"}";    }}

3. 准备Dockerfile文件

src/main目录下新建一个docker文件夹,并添加一个Dockerfile文件。文件内容如下:

FROM local/centos7-jdk8VOLUME /tmpADD springboot-docker-0.0.1-SNAPSHOT.jar app.jarRUN sh -c 'touch /app.jar'ENV JAVA_OPTS=""ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]

4. 编译打包镜像

在Spring Boot项目的根目录下,执行以下命令:

mvn clean package docker:build

执行完毕后,会生成一个名为local/springboot-docker的镜像。


启动容器并进行端口映射

完成镜像构建后,我们可以通过以下命令启动一个容器并进行端口映射:

docker run -d -p 18080:8080 local/springboot-docker

启动成功后,你可以通过浏览器访问http://localhost:18080/来访问你的Spring Boot项目。


到此为止,我们已经完成了Spring Boot项目与Docker镜像的集成配置工作。整个过程主要包括以下几个步骤:

  • 编写pom.xml文件,配置项目依赖和打包选项。
  • 编写启动类App.java,实现基本的Web控制器功能。
  • 准备Dockerfile文件,定义镜像构建流程。
  • 使用Maven命令编译打包镜像。
  • 启动容器并进行端口映射。
  • 通过以上步骤,我们成功地将Spring Boot项目打包到Docker镜像中,并通过端口映射实现了对项目的访问。

    转载地址:http://erhy.baihongyu.com/

    你可能感兴趣的文章
    OSPF技术连载11:OSPF 8种 LSA 类型,6000字总结!
    查看>>
    OSPF技术连载12:OSPF LSA泛洪——维护网络拓扑的关键
    查看>>
    OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
    查看>>
    OSPF技术连载14:OSPF路由器唯一标识符——Router ID
    查看>>
    OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>
    OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
    查看>>
    OSPF技术连载22:OSPF 路径选择 O > O IA > N1 > E1 > N2 > E2
    查看>>
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>