SpringBoot使用Jib将应用快速打包成Docker镜像

在以往的Web服务Docker镜像构建主要包含以下一个主要的步骤:

1.拉取基本的镜像;

2.将所拉取的镜像形成容器;

3.进入到容器中配置Web服务所需要的运行环境,jdk、tomcat等;

4.将已经打好包的项目移动到容器中部署,测试是否成功;

5.将容器打包成镜像提交。

整体步骤比较麻烦,最近google开源了一个镜像构建工具Jib(https://github.com/GoogleContainerTools/jib)可以将应用快速打包成镜像。

使用方法很简单,首先在pom中添加plugin,from标签为使用的基础镜像,mainClass为项目启动的主程序,也就是Spring Boot的Application类,to标签的含义为将镜像发布到哪个存储库中。:

<plugin>
	<groupId>com.google.cloud.tools</groupId>
	<artifactId>jib-maven-plugin</artifactId>
	<version>0.9.7</version>
	<configuration>
		<from>
			<image>openjdk:alpine</image>
		</from>
		<mainClass>com.wireless.analyse.Application</mainClass>
		<to>
			<image>registry.hub.docker.com/goods/buy</image>
		</to>
	</configuration>
</plugin>

在idea中可以看到jib构建工具主要包含了四个强大的功能,build提供了创建镜像并推送到远程仓库功能,buildTar提供创建一个包含镜像的tar文件功能,dockerBuild提供创建docker镜像到本地功能,exportDockerContext提供创建docker file功能:

SpringBoot使用Jib将应用快速打包成Docker镜像

在进行镜像打包时最好主机已经安装了Docker,如果远程提交镜像到仓库可以在本地登陆后提交,否则会产生权限错误(Bug不少)。如果打包到本地就简单了,运行dockerBuild就好:

SpringBoot使用Jib将应用快速打包成Docker镜像

SpringBoot使用Jib将应用快速打包成Docker镜像

通过docker images查看镜像,可以看到已经产生的镜像SpringBoot使用Jib将应用快速打包成Docker镜像