Dockerize我的春季启动应用程序,而不使用Maven构build图像

我想通过docker容器服务我的春季启动应用程序,而设置,它需要maven插件(fabric8)build立一个容器的docker图像,我不明白,

  • 为什么需要maven来build立一个图像(甚至春季启动官方文档build议这样做https://spring.io/guides/gs/spring-boot-docker/ )
  • 是否有任何最佳做法dockerize我的春季启动应用程序? 请帮助我,预先感谢

有两种build立docker图像的方法

1.用Maven构build一个Docker镜像

添加dockerfile maven插件

<plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> 

使用命令行构builddocker镜像

 ./mvnw install dockerfile:build 

2.使用Docker命令构buildDocker镜像

  • cd进入包含Dockerfile的项目目录
  • 运行maven命令

    ./mvnw干净安装

  • 运行docker build命令

    dockerbuild设。

    docker build -f / path / to / Dockerfile

Docker映像是Spring Boot无法提供的,因为Spring Boot本身就是一个运行时框架,它告诉JVM如何运行你的代码。 相反,Docker是关于如何发布和运行JVM本身。 所以,Spring Boot是一个运行时框架,而Docker镜像并不是你在运行时所做的事情。 您只能在构build时构buildDocker镜像,此时您的构件(和Spring Boot)尚未运行。

Maven是一个构build工具,所以当Maven执行构build时,它可以包括在整个构build过程中构buildDocker镜像。 这不仅可以通过Maven完成,而且可以通过任何具有Docker插件的构build工具完成。 Maven只是一个stream行的构build工具,所以它经常用在其他框架手册中,但实际上Maven,Spring Boot和Docker之间没有依赖关系。 Maven拥有构buildSpring引导应用程序的所有工具,并构buildDocker镜像。

为了dockerize你的应用程序,你不需要Maven,但是你需要以某种方式包括构buildDocker镜像来为你的应用程序构build脚本。