使用jib-maven-plugin將Spring Boot項目發布為Docker鏡像


介紹

將spring boot(cloud)項目發布到docker環境作為鏡像,一般常用的一個是com.spotify的docker-maven-plugin這個maven插件,還有一個就是本文介紹的了,本文介紹的jib-maven-plugin是谷歌提供的,且配置較為簡單(相對的鏡像自定義能力較弱)。

使用

增加如下配置即可:

<build>
        <finalName>${artifactId}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.google.cloud.tools</groupId>
                    <artifactId>jib-maven-plugin</artifactId>
                    <version>2.1.0</version>
                    <configuration>
                        <!--配置基本鏡像,這里可以修改為自己的鏡像,或精簡或修改,但是一定要在私有庫中有-->
                        <from>
                            <image>java:8</image>
                        </from>
                        <!--配置最終推送的地址,倉庫名,鏡像名-->
                        <to>
                            <tags>
                                <!--tag即鏡像的版本,一般是覆蓋latest並且新增一個當前版本號-->
                                <tag>latest</tag>
                                <tag>${version}</tag>
                            </tags>
                            <!--配置私有倉庫地址-->
                            <image>10.10.2.62:5000/v2/${project.build.finalName}</image>
                        </to>
                        <allowInsecureRegistries>true</allowInsecureRegistries>
                        <container>
                            <!--jvm內存參數,jvm啟動時的所有參數都可以在這里增加-->
                            <jvmFlags>
                                <jvmFlag>-Xms512m</jvmFlag>
                                <jvmFlag>-Xmx512m</jvmFlag>
                                <jvmFlag>-Duser.timezone=GMT+08</jvmFlag>
                                <jvmFlag>-Dfile.encoding=UTF8</jvmFlag>
                            </jvmFlags>
                            <!--要暴露的端口-->
                            <ports>
                                <port>8761</port>
                            </ports>
                            <!--修改鏡像默認時間,否則會導致鏡像內時區問題-->
                            <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
                        </container>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

總結

這種方式比dockerFile簡單,但是也不靈活,適合簡單項目。


免責聲明!

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



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