[docker从入门到入土]spring-boot项目打包docker镜像(maven方式)

本文档介绍将一个spring-boot项目打包成一个docker镜像,并进行运行测试.

本文档的打包方法来自spring官网spring-boot打包成docker镜像,网址:

http://spring.io/guides/gs/spring-boot-docker/

先看项目,项目结构如图

注意在项目根目录下创建了一个Dockerfile的文件,文件内容暂时不看.

DockerController的内容

直接访问返回hello world

pom文件,需要在build中加入

<build>

   <plugins>

      <plugin>

         <groupId>org.springframework.bootgroupId>

         <artifactId>spring-boot-maven-pluginartifactId>

      plugin>

      <plugin>

         <groupId>com.spotifygroupId>

         <artifactId>dockerfile-maven-pluginartifactId>

         <version>1.3.6version>

         <configuration>

            <repository>docker/${project.artifactId}repository>

            <buildArgs>

               <JAR_FILE>target/${project.build.finalName}.jarJAR_FILE>

            buildArgs>

         configuration>

      plugin>

   plugins>

build>


repository即打包后得到的镜像的名称

buildArgs是Dockerfile中引用到的参数


Dockerfile文件

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ARG JAR_FILE

ADD ${JAR_FILE} app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]


ARG即pom文件中指定的参数

VOLUME 表示在镜像的目录中创建一个/tmp的文件目录,这一步是可选的,如果需要一些文件操作,建议通过这个参数指定文件目录供程序使用


首先打包jar文件,用的命令是mvn package,这一步可以借助编译器打包或者cmd命令行.

这里通过git命令行演示

进入项目目录

打包jar

最后


生成的jar文件在target目录下

打包成镜像,命令是 mvn install dockerfile:build

这一步可能打包错误,输出信息贴一下编译器中使用这个命令的结果

这里需要重新设置下docker-machine env

正确的输出信息中包括打包文件和生成镜像俩部分

使用docker images查看生成的镜像

运行这个镜像


访问测试


你可能感兴趣的:([docker从入门到入土]spring-boot项目打包docker镜像(maven方式))