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

Maven一鍵部署Springboot到Docker倉庫為自動化做準備(推薦)

 更新時間:2020年07月07日 09:01:52   作者:南瓜慢說  
這篇文章主要介紹了Maven一鍵部署Springboot到Docker倉庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1 前言

前面《Springboot整合MongoDB的Docker開發(fā),其它應用也類似》講解了如何做Docker開發(fā)、如何把Springboot應用打包成一個鏡像,但它是手動的,本文將講解如何通過maven一鍵打包部署。

2 兩個maven插件搞定

可以使用maven插件實現(xiàn)一鍵部署,這兩個插件還是同一個公司的產品,就是著名的音樂流服務平臺Spotify。

2.1 spotify/docker-maven-plugin

2.1.1 基礎用法

該插件可以實現(xiàn)鏡像打包和push到倉庫,無Dockerfile和有Dockerfile兩種方式都可以,建議使用Dockerfile,更靈活。在mavenpom.xml文件加入以下插件配置:

<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <version>1.2.2</version>
 <configuration>
 <imageName>pkslow/springboot-mongo</imageName>
 <imageTags>
 <imageTag>${imageVersion}</imageTag>
 <imageTag>latest</imageTag>
 </imageTags>
 <!-- optionally overwrite tags every time image is built with docker:build -->
 <forceTags>true</forceTags>
 <dockerDirectory>${project.basedir}</dockerDirectory>
 <resources>
 <resource>
 <targetPath>/</targetPath>
 <directory>${project.build.directory}</directory>
 <include>${project.build.finalName}.jar</include>
 </resource>
 </resources>
 </configuration>
</plugin>
  • imageName:這是鏡像名稱;
  • imageTags:標簽,支持多標簽,即同一個鏡像文件多個標簽;我指定了一個參數(shù)imageVersion,可以命令行傳入,方便后續(xù)整合Jenkins。
  • forceTags:是否覆蓋原有標簽;
  • dockerDirectory:Dockerfile文件所在的位置;而且該目錄下的所有文件都會被復制到${project.build.directory}/docker。因為我的Dockerfile放在項目根目錄,所以整個項目的文件都復制過去了,包括源代碼等。不得不吐槽一下這個設計,這是在強迫大家換個位置放Dockerfile嗎?
  • resources:用來添加dockerDirectory外的其它資源文件。

添加后,通過以下命令執(zhí)行:

$ mvn clean package docker:build -DimageVersion=0.0.4

通過命令docker images查看成功,運行也正常。

通過下面命令可以push到registry

mvn clean package docker:build -DpushImage

mvn clean package docker:build -DpushImageTag

2.1.2 與maven生命周期綁定

可以通過添加executions配置實現(xiàn)與maven生命周期的綁定。

<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <version>VERSION GOES HERE</version>
 <executions>
 <execution>
 <id>build-image</id>
 <phase>package</phase>
 <goals>
 <goal>build</goal>
 </goals>
 </execution>
 <execution>
 <id>tag-image</id>
 <phase>package</phase>
 <goals>
 <goal>tag</goal>
 </goals>
 <configuration>
 <image>my-image:${project.version}</image>
 <newName>registry.example.com/my-image:${project.version}</newName>
 </configuration>
 </execution>
 <execution>
 <id>push-image</id>
 <phase>deploy</phase>
 <goals>
 <goal>push</goal>
 </goals>
 <configuration>
 <imageName>registry.example.com/my-image:${project.version}</imageName>
 </configuration>
 </execution> 
 </executions>
</plugin>

有了這些綁定配置后,要打包鏡像,直接mvn clean package即可。

2.1.3 倉庫登陸信息配置

首先,插件可以使用配置在本地 ~/.dockercfg~/.docker/config.json的驗證信息,或者可以顯式地配置在maven上。

如配置在settings.xml文件:

<servers>
 <server>
 <id>docker-hub</id>
 <username>foo</username>
 <password>secret-password</password>
 <configuration>
 <email>foo@foo.bar</email>
 </configuration>
 </server>
</servers>

密碼是可以加密的,詳情請查看: 。

在項目的pom.xml中使用:

<plugins>
 <plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 <version>VERSION GOES HERE</version>
 <configuration>
 [...]
 <serverId>docker-hub</serverId>
 <registryUrl>https://index.docker.io/v1/</registryUrl>
 </configuration>
 </plugin>
</plugins>

2.2 spotify/dockerfile-maven

2.2.1 更簡潔的插件

因為docker-maven-plugin有一些Bugs,所以Spotify開發(fā)了更方便簡潔的插件dockerfile-maven。

dockerfile-maven-plugin的配置更簡單:

<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>dockerfile-maven-plugin</artifactId>
 <version>${dockerfile-maven-version}</version>
 <executions>
 <execution>
 <id>default</id>
 <goals>
 <goal>build</goal>
 <goal>push</goal>
 </goals>
 </execution>
 </executions>
 <configuration>
 <repository>spotify/foobar</repository>
 <tag>${project.version}</tag>
 <buildArgs>
 <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
 </buildArgs>
 </configuration>
</plugin>

配置好后,執(zhí)行以下maven命令即可打包成鏡像并推送到倉庫:

mvn deploy

2.2.2 倉庫驗證

賬號可以配置在pom.xml中,如下:

<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>dockerfile-maven-plugin</artifactId>
 <version>${version}</version>
 <configuration>
 <username>repoUserName</username>
 <password>repoPassword</password>
 <repository>${docker.image.prefix}/${project.artifactId}</repository>
 <buildArgs>
  <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
 </buildArgs>
 </configuration>
</plugin>

當然,也可以配置在maven的配置文件settings.xml中,這樣更安全,請參考:https://github.com/spotify/dockerfile-maven/blob/master/docs/authentication.md

3 總結

通過maven插件,可以快速方便地一鍵打包、部署,非常方便,對后續(xù)的整個DevOps整合也是很有益的。

參考資料:

docker-maven-plugin:https://github.com/spotify/docker-maven-plugin

到此這篇關于Maven一鍵部署Springboot到Docker倉庫為自動化做準備的文章就介紹到這了,更多相關Maven一鍵部署Springboot到Docker倉庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中的圖形界面重繪方式

    Java中的圖形界面重繪方式

    這篇文章主要介紹了Java中的圖形界面重繪方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • MyBatis-Plus條件構造器Wrapper應用實例

    MyBatis-Plus條件構造器Wrapper應用實例

    QueryWrapper是用于查詢的Wrapper條件構造器,可以通過它來構建SELECT語句中的WHERE條件,這篇文章主要介紹了MyBatis-Plus數(shù)據(jù)表操作條件構造器Wrapper,需要的朋友可以參考下
    2023-09-09
  • 使用Lombok的@Builder注解帶來的兩大坑

    使用Lombok的@Builder注解帶來的兩大坑

    這篇文章主要介紹了使用Lombok的@Builder注解帶來的兩大坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • idea遠程debug調試部署在tomcat上項目

    idea遠程debug調試部署在tomcat上項目

    本文主要介紹了idea遠程debug調試部署在tomcat上項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java中SpringBoot的TCC事務詳解

    Java中SpringBoot的TCC事務詳解

    這篇文章主要介紹了Java中SpringBoot的TCC事務詳解,近年來,隨著微服務架構的普及,TCC?事務成為了一種非常流行的分布式事務解決方案,在?Spring?Boot?中,我們可以很容易地使用?TCC?事務來管理分布式事務,需要的朋友可以參考下
    2023-07-07
  • 在Java 8中將List轉換為Map對象方法

    在Java 8中將List轉換為Map對象方法

    這篇文章主要介紹了在Java 8中將List轉換為Map對象方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • Java Socket一對多通信實現(xiàn)之并發(fā)處理方式

    Java Socket一對多通信實現(xiàn)之并發(fā)處理方式

    這篇文章主要介紹了Java Socket一對多通信實現(xiàn)之并發(fā)處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 全面詳解Maven打包及其相關插件和高級特性

    全面詳解Maven打包及其相關插件和高級特性

    這篇文章主要為大家介紹了Maven打包及其相關插件和高級特性的全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Mybatis-config.xml中映射Mapper.xml文件遇到的錯誤及解決

    Mybatis-config.xml中映射Mapper.xml文件遇到的錯誤及解決

    這篇文章主要介紹了Mybatis-config.xml中映射Mapper.xml文件遇到的錯誤及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 基于JavaSwing+mysql開發(fā)一個學生社團管理系統(tǒng)設計和實現(xiàn)

    基于JavaSwing+mysql開發(fā)一個學生社團管理系統(tǒng)設計和實現(xiàn)

    項目使用Java swing+mysql開發(fā),可實現(xiàn)基礎數(shù)據(jù)維護、用戶登錄注冊、社團信息列表查看、社團信息添加、社團信息修改、社團信息刪除以及退出注銷等功能、界面設計比較簡單易學、適合作為Java課設設計以及學習技術使用,需要的朋友參考下吧
    2021-08-08

最新評論

年辖:市辖区| 迭部县| 长宁区| 泽普县| 治多县| 新源县| 神木县| 大同市| 安达市| 青州市| 巴南区| 富顺县| 三门县| 益阳市| 浦东新区| 临沭县| 通道| 石狮市| 嵊州市| 固阳县| 三台县| 宁武县| 凤山县| 太和县| 德钦县| 尤溪县| 汉中市| 孟州市| 图片| 如东县| 桐梓县| 潜山县| 武城县| 恩平市| 阳原县| 九江市| 双江| 拉萨市| 米脂县| 石屏县| 台南县|