在生产环境中,现在k8s越来越流行,所以我们日常的项目几乎都是使用docker的方式部署到k8s集群里面的。之前我们介绍过如何把项目进行docker打包,可参考《微服务实战spring cloud alibaba(十三)使用docker部署我们的所有服务》,今天我们直接介绍在项目的maven里面pom.xml里面添加plugin,实现在本地或者jekins上直接把项目打包成docker并推送到docker镜像里面。
我们这里使用的插件是:jlib插件。所以这里我们直接在pom.xml的build的plugins里面添加如下plugin
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>3.1.4</version> <configuration> <!--配置基本镜像--> <from> <image>openjdk:8-jdk-alpine</image> <!-- <image>adoptopenjdk:8-jre</image> 选一个就行,有的镜像方法不全--> </from> <!--配置最终推送的地址,仓库名,镜像名--> <to> <image>docker.io/这里填写docker账户名/仓库名</image> <tags> <tag>v1.1</tag> <tag>latest</tag> </tags> <auth> <username>docker账号</username> <password>密码</password> </auth> </to> <container> <mainClass>com.chunhui.WhatsupMallPlusApplication改成自己的主类</mainClass> <jvmFlags> <jvmFlag>-Xms512m</jvmFlag> <jvmFlag>-Xmx1024m</jvmFlag> <!-- 记录内存溢出时的推展情况--> <jvmFlag>-XX:+HeapDumpOnOutOfMemoryError</jvmFlag> <!-- 内存溢出文件位置--> <jvmFlag>-XX:HeapDumpPath=./</jvmFlag> </jvmFlags> <ports> <port>8090端口号</port> </ports> <!--使用该参数将镜像的创建时间与系统时间对其,不然镜像上传的时间会是四十几年前--> <creationTime>USE_CURRENT_TIMESTAMP</creationTime> </container> </configuration> <!--绑定到maven lifecicle--> <executions> <execution> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
然后我们在idea的maven下面的plugin里面可以看到jlib
然后我们点击下面的jlib:builder就可以了,他就会自动在idea里面进行编译,并且把docker镜像推送到docker仓库里面去。
如果我们不使用idea的话,使用命令行或者jekins的时候,这时候项目编译对应的命令是:
mvn compile jib:build
还没有评论,来说两句吧...