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脚本。