最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven插件構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟

 更新時(shí)間:2019年10月18日 16:45:36   作者:MrChang  
這篇文章主要介紹了Maven插件構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

背景

微服務(wù)架構(gòu)下,微服務(wù)在帶來良好的設(shè)計(jì)和架構(gòu)理念的同時(shí),也帶來了運(yùn)維上的額外復(fù)雜性,尤其是在服務(wù)部署和服務(wù)監(jiān)控上。單體應(yīng)用是集中式的,就一個(gè)單體跑在一起,部署和管理的時(shí)候非常簡單,而微服務(wù)是一個(gè)網(wǎng)狀分布的,有很多服務(wù)需要維護(hù)和管理,對它進(jìn)行部署和維護(hù)的時(shí)候則比較復(fù)雜。

下面從Dev的角度來看一下Ops的工作。從Dev提交代碼,到完成集成測試的一系列步驟如下:

  1. 首先是開發(fā)人員把程序代碼更新后上傳到Git,然后其他的事情都將由Jenkins自動完成。
  2. 然后Git在接收到用戶更新的代碼后,會把消息和任務(wù)傳遞給Jenkins,然后Jenkins會自動構(gòu)建一個(gè)任務(wù),下載Maven相關(guān)的軟件包。下載完成后,就開始利用Maven Build新的項(xiàng)目包,然后重建Maven容器,構(gòu)建新的Image并Push到Docker私有庫中。
  3. 最后刪除正在運(yùn)行的Docker容器,再基于新的鏡像重新把Docker容器啟動,自動完成集成測試。

整個(gè)過程都是自動的,這樣就簡化了原本復(fù)雜的集成工作,一天可以集成一次,甚至是多次。

本文主要關(guān)注的第二步,作為Dev使用Maven插件構(gòu)建Docker鏡像。

過程步驟

環(huán)境

筆者的電腦系統(tǒng)是MacOS,在進(jìn)行下面的步驟之前,先具備一下條件:

  • Docker Registry
  • Maven(3.5.0)
  • JDK(1.8.0_131)
  • Docker for Mac (17.09.0-ce-mac35)

Maven 和JDK 就不用過多多了,必須具有的。Docker Registry是私有的hub,mac上裝好docker之后,配置一下Docker Registry的地址,配置如下:

因?yàn)閐ocker默認(rèn)需要私服做https支持,我這邊之前有個(gè)私服做了https支持,所以我這里就不需要配置了

pom 配置

pom文件中需要引入相應(yīng)的插件。docker-maven-plugin有三款:spotify、fabric8io和bibryam。其中第一款最為流行,資料也多,所以毫不猶豫選擇第一款。

插件有兩種使用方式,一種是在直接在pom配置中指定baseImage和entryPoint。另一種適合于復(fù)雜的構(gòu)建,使用dockerfile,只需要在配置中指定dockerfile的位置。前一種比較簡單,此處略過,主要講下第二種的配置

<plugin>
       <groupId>com.spotify</groupId>
       <artifactId>docker-maven-plugin</artifactId>
       <version>${maven.docker.version}</version>
       <!--插件綁定到phase-->
       <executions>
         <execution>
           <phase>install</phase>
           <goals>
             <goal>build</goal>
           </goals>
         </execution>
       </executions>
       <configuration>
       <!--配置變量,包括是否build、imageName、imageTag,非常靈活-->
         <skipDocker>${docker.skip.build}</skipDocker>
         <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
         <!--最后鏡像產(chǎn)生了兩個(gè)tag,版本和和最新的-->
         <imageTags>
           <imageTag>${project.version}</imageTag>
           <imageTag>latest</imageTag>
         </imageTags>
         <forceTags>true</forceTags>         
         <env>
           <TZ>Asia/Shanghai</TZ>
         </env>
         <!--時(shí)區(qū)配置-->
         <runs>
           <run>ln -snf /usr/share/zoneinfo/$TZ /etc/localtime</run>
           <run>echo $TZ > /etc/timezone</run>           
         </runs>
         <dockerDirectory>${project.basedir}</dockerDirectory>
         <resources>
           <resource>
             <targetPath>/</targetPath>
             <directory>${project.build.directory}</directory>
             <include>${project.build.finalName}.jar</include>
           </resource>
         </resources>
         <!--push到私有的hub-->
         <serverId>docker-registry</serverId>
       </configuration>

</plugin>

${maven.docker.version}${docker.skip.build}、${docker.image.prefix}都是可配置的變量。${project.basedir}、${project.build.directory}、${project.build.finalName}、${project.version}分別對應(yīng)項(xiàng)目根目錄、構(gòu)建目錄、打包后生成的結(jié)果名稱、項(xiàng)目版本號。

上面的pom插件配置,指定了dockerfile的位置和鏡像的命名規(guī)則。并將docker的build目標(biāo),綁定在install這個(gè)phase上。

dockerfile

FROM java:8

COPY target/maven-docker-image-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar" ,"/app.jar"]

setting.xml

在pom插件中,還有一個(gè)serverId的配置。這個(gè)配置是必要的,對于需要將image上傳到私有hub上,在如上配置之后,只需要加上-DpushImage即可實(shí)現(xiàn)。serverId是與maven的配置文件setting.xml相對應(yīng),setting.xml中增加的配置:

<server>
 <id>docker-registry</id>
 <username>用戶名</username>
 <password>密碼</password>
 <configuration>
  <email>郵箱</email>
 </configuration>
</server>

結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?IO之流的分類詳解

    Java?IO之流的分類詳解

    這篇文章主要為大家介紹了Java?IO之流的分類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Mybatis遷移到Mybatis-Plus的實(shí)現(xiàn)方法

    Mybatis遷移到Mybatis-Plus的實(shí)現(xiàn)方法

    這篇文章主要介紹了Mybatis遷移到Mybatis-Plus的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Spring CGLlB動態(tài)代理實(shí)現(xiàn)過程解析

    Spring CGLlB動態(tài)代理實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Spring CGLlB動態(tài)代理實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot利用Validation包實(shí)現(xiàn)高效參數(shù)校驗(yàn)

    SpringBoot利用Validation包實(shí)現(xiàn)高效參數(shù)校驗(yàn)

    如果不進(jìn)行校驗(yàn)就直接使用這些數(shù)據(jù),可能會導(dǎo)致各種問題,那么SpringBoot如何利用Validation包實(shí)現(xiàn)高效參數(shù)校驗(yàn)?zāi)?下面讓我們一起來探討這個(gè)重要的話題吧
    2025-04-04
  • 基于redis key占用內(nèi)存量分析

    基于redis key占用內(nèi)存量分析

    這篇文章主要介紹了基于redis key占用內(nèi)存量分析,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • maven多模塊打包注意事項(xiàng)詳解

    maven多模塊打包注意事項(xiàng)詳解

    這篇文章主要為大家介紹了maven多模塊打包注意事項(xiàng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • MyBatis-Flex BaseMapper的接口基本用法小結(jié)

    MyBatis-Flex BaseMapper的接口基本用法小結(jié)

    本文主要介紹了MyBatis-Flex BaseMapper的接口基本用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 使用IntelliJ IDEA調(diào)式Stream流的方法步驟

    使用IntelliJ IDEA調(diào)式Stream流的方法步驟

    本文主要介紹了使用IntelliJ IDEA調(diào)式Stream流的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決

    SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決

    這篇文章主要介紹了SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • SpringCloud?Stream?整合RabbitMQ的基本步驟

    SpringCloud?Stream?整合RabbitMQ的基本步驟

    這篇文章主要介紹了SpringCloud?Stream?整合RabbitMQ的基本步驟,從項(xiàng)目介紹到生產(chǎn)者結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評論

清远市| 临西县| 怀仁县| 九寨沟县| 阆中市| 新竹县| 沾化县| 荣成市| 绥滨县| 德惠市| 上杭县| 久治县| 夏邑县| 蒙自县| 滕州市| 利津县| 阿拉尔市| 安达市| 旺苍县| 叶城县| 浦东新区| 达尔| 荣昌县| 吴旗县| 霍州市| 康平县| 牡丹江市| 尖扎县| 油尖旺区| 淮北市| 乐平市| 横峰县| 东至县| 浙江省| 晋江市| 舒城县| 莲花县| 宣武区| 娱乐| 遵义县| 沅江市|