1 說明
- Maven插件Jib暫不支持https的自簽名,因此只能配置以Http的方式訪問Harbor私有倉庫
- 以下基於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/鏡像名稱:鏡像版本