Maven插件Jib配合Harbor生成Docker鏡像


1 說明

  1. Maven插件Jib暫不支持https的自簽名,因此只能配置以Http的方式訪問Harbor私有倉庫
  2. 以下基於SpringBoot2.x進行配置

2 Maven配置

2.1 pom.xml中配置

項目的pom.xml中添加以下屬性和插件內容:

<properties>
    <app.main.class>cc.anxminise.spblearn.Application</app.main.class>
    <docker.image.prefix>192.168.1.112/library</docker.image.prefix>
    <docker.image.name>${artifactId}:${version}</docker.image.name>
</properties>
屬性 說明 舉例
app.main.class SpringBoot應用的啟動類,即:待@SpringBootApplication注解的類
docker.image.prefix 生成的docker鏡像的tag標簽的前綴 192.168.1.112/library/spblearn:0.0.1
docker.image.name 生成的docker鏡像的名稱 192.168.1.112/library/spblearn:0.0.1
<plugins>
    <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-maven-plugin</artifactId>
        <version>0.9.11</version>
        <configuration>
          <from>
            <image>192.168.1.112/library/centos7-java8u131:1.0.1</image>
          </from>
          <to>
            <image>${docker.image.prefix}/${docker.image.name}</image>
          </to>
          <container>
            <jvmFlags>
              <jvmFlag>-Xms512m</jvmFlag>
            </jvmFlags>
            <environment>
              <spring.profiles.active>prod</spring.profiles.active>
              <TZ>Asia/Shanghai</TZ>
            </environment>
            <mainClass>${app.main.class}</mainClass>
            <format>OCI</format>
            <useCurrentTimestamp>true</useCurrentTimestamp>
          </container>
          <allowInsecureRegistries>true</allowInsecureRegistries>
        </configuration>
    </plugin>
</plugins>
屬性 說明
jvmFlag 配置jvm虛擬機參數
spring.profiles.active 配置應用的啟動參數,這里配置了使用application-prod.yml中的配置
TZ 配置了使用的時區

2.2 執行構建生成docker鏡像

mvn jib:dockerBuild -DsendCredentialsOverHttp=true

3 本地測試鏡像

docker run -it --rm -p port:port 192.168.1.112/library/鏡像名稱:鏡像版本

4 推送鏡像到倉庫

docker push 192.168.1.112/library/鏡像名稱:鏡像版本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM