700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用Google/jib maven插件构建docker镜像 并上传到harbor仓库

使用Google/jib maven插件构建docker镜像 并上传到harbor仓库

时间:2020-03-27 16:09:35

相关推荐

使用Google/jib maven插件构建docker镜像 并上传到harbor仓库

Google/jib

1 .前置条件:

无;

2.pom中引入插件

<!-- Jib -->

<plugin>

<groupId>com.google.cloud.tools</groupId>

<artifactId>jib-maven-plugin</artifactId>

<version>0.9.11</version>

<configuration>

<from>

<!--阿里云镜像仓库-->

<image>-/jibjava/jibfirst</image>

<auth>

<username>账号</username>

<password>密码</password>

</auth>

</from>

<to>

<!--阿里云镜像仓库-->

<image>-/jibjava/jibfirst</image>

</to>

</configuration>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>build</goal>

</goals>

</execution>

</executions>

</plugin>

命令:mvn compile jib:build -DsendCredentialsOverHttp=true

3.参数介绍

from:拉取的镜像的配置,默认为gcr.io/distroless/java

to:要生成的镜像的配置

image:拉取或生成的镜像名称

auth:认证信息,分别为用户名和密码

<!--下面四个基本用不到,上面四个足以 -->

container:容器的属性

jvmFlgs: JVM容器的参数,和Dockerfile的ENTRYPOINT作用相同

mainClass:启动类限定名

args: main方法的传入参数

ports:容器暴露的端口,和Dockerfile的EXPOSE作用相同

三种方式的简单对比

Google/jib的好处

项目每次发布实际上变更的代码量不大,尤其依赖的jar变动的可能性较小,如果按照前两种方案构建镜像,会导致每次都全量构建,会导致存储和带宽资源浪费

Jib利用了Docker镜像的分层机制,将其与构建系统集成,并通过以下方式优化Java容器镜像的构建:

简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。因为Jib与Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。