Jib打包Spring boot
6 min readJul 19, 2021
透過pom.xml配置image參數使用mvn打包時一併產生image檔
Maven
<build>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.4.0</version>
</plugin>
...
</build>
於pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>WordUtil</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>WordUtil</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.10.0</version>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies><build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.3.0</version>
<configuration>
<!--from設定image所需要的基礎image 相當于Docerkfile中的FROM关键字 -->
<from>
<!--base image -->
<image>openjdk:8-jdk-stretch</image>
</from>
<to>
<!--image名稱和tag,使用了mvn内置變數${project.version},表示當前的version -->
<image>registry.hub.docker.com/huway0310/poi_tl_demo:${project.version}</image>
</to>
<!--容器相關的属性 -->
<container>
<!--要暴露的端口 -->
<ports>
<port>8080</port>
</ports>
<!--使用容器時間系統時間匹配 -->
<useCurrentTimestamp>true</useCurrentTimestamp>
</container>
</configuration>
</plugin>
</plugins>
</build></project>
建構image
jib 本地指令
mvn compile jib:dockerBuild
推送到遠程(登入到Dockerhub)
mvn compile jib:buildmvn clean install jib:build //重新包
執行
參考