jib是什么?
Jib 在不使用 Dockerfile 或不安装 Docker 的情况下构建容器。您可以在用于 Maven 或 Gradle 的 Jib 插件中使用 Jib,也可以使用 Jib Java 库。
jib可以做什么?
Jib 处理将应用打包到容器映像中的所有步骤。您无需了解创建 Dockerfile 的最佳做法或安装 Docker。
Docker 构建流程:
Jib 构建流程:
Jib 将您的应用整理成不同的层、依赖项、资源和类;并且利用 Docker 映像层缓存仅通过重建更改来保持构建速度。Jib 的层组织和小型基础映像可使整体映像尺寸变小,从而提升性能和可携性。
在maven中使用jib构建
将插件添加到您的pom.xml中:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<to>
<image>HUB/IMAGE</image>
</to>
</configuration>
</plugin>
替换
- 将
HUB替换为 公司hub地址。 - 将
IMAGE替换为您的映像名称。
如果您不想修改 pom.xml,可以使用以下命令:
mvn compile com.google.cloud.tools:jib-maven-plugin:2.8.0:build -Dimage=HUB/IMAGE
构建映像并将其推送到hub
mvn compile jib:build
其他自定义内容
添加环境变量
您可以将环境变量添加到构建,类似于 Dockerfile 中的 ENV 指令,如下所示:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<to>
<image>HUB/IMAGE</image>
</to>
<container>
<environment>
<ENV_VAR>VALUE</ENV_VAR>
</environment>
</container>
</configuration>
</plugin>
替换
- 将
PROJECT替换为 Google Cloud 项目 ID。 - 将
IMAGE替换为您的映像名称。 - 将
ENV_VAR替换为NAME。 - 将
VALUE替换为所需的值。
更改基础映像
基础映像与 Dockerfile 中的 FROM 指令相同。您可以通过更改字段 from.image 来更新基础映像。
如果要包含用于调试的 shell,请将基础映像设置为 alpine:3 或 openjdk:VERSION(如果需要 Java)。
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<from>
<image>gcr.io/PROJECT/BASE_IMAGE</image>
</from>
<to>
<image>gcr.io/PROJECT/IMAGE_NAME</image>
</to>
</configuration>
</plugin>
自定义其他 Java 方面
Jib 支持运行应用时可能需要的 Java 运行时配置。如需更多自定义信息,请参阅扩展用途。