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

使用Maven打包構建Docker鏡像并推送到倉庫

 更新時間:2023年04月06日 14:38:17   作者:李奈 - Leemon  
這篇文章主要介紹了使用Maven打包構建Docker鏡像并推送到倉庫問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

對于開發(fā)完成的服務要發(fā)布至服務器Docker時,我剛學習了解Docker時構建鏡像方式是將我的本地服務先通過maven打包稱為jar包,然后再上傳至我的服務器上,通過Dockerfile將其構建成為鏡像。

后來才了解了直接通過maven命令直接打包構建的方式,以下是完成這一操作的步驟。

一,服務器Docker配置

修改daemon.json文件,開放端口2375

"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]

我的文件如下所示:

{
? ?? ?"insecure-registries":["10.xx.xx.xx:5000"],
?? ?"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
{
"graph":"/Data/docker"
}

二,本地項目maven配置

2.1 pom.xml

在項目的pom文件引入docker-maven-plugin插件

<plugin>
? ? ? ? ? ? ? ? <!-- https://mvnrepository.com/artifact/com.spotify/docker-maven-plugin -->
? ? ? ? ? ? ? ? <groupId>com.spotify</groupId>
? ? ? ? ? ? ? ? <artifactId>docker-maven-plugin</artifactId>
? ? ? ? ? ? ? ? <version>1.2.2</version>
? ? ? ? ? ? ? ? <executions>
? ? ? ? ? ? ? ? ? ? <!-- 當mvn執(zhí)行install操作的時候,執(zhí)行docker的build和push -->
? ? ? ? ? ? ? ? ? ? <execution>
? ? ? ? ? ? ? ? ? ? ? ? <id>build</id>
? ? ? ? ? ? ? ? ? ? ? ? <phase>install</phase>
? ? ? ? ? ? ? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>build</goal>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<goal>push</goal>-->
? ? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? ? </executions>
? ? ? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? ? ? <!-- 連接到 帶docker環(huán)境的linux服務器 編譯image -->
? ? ? ? ? ? ? ? ? ? <dockerHost>http://10.xx.xx.xx:2375</dockerHost>

? ? ? ? ? ? ? ? ? ? <!--格式:私有倉庫/鏡像名稱:版本號, 如果要執(zhí)行push操作, 那么鏡像名稱必須為私有倉庫為前綴,不然無效。-->
? ? ? ? ? ? ? ? ? ? <imageName>10.xx.xx.xx:5000/${project.artifactId}:${docker.tag}</imageName>

? ? ? ? ? ? ? ? ? ? <!--指定dockerfile文件路徑-->
? ? ? ? ? ? ? ? ? ? <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>

? ? ? ? ? ? ? ? ? ? <!-- 指定jar包路徑,這里對應Dockerfile中復制 jar 包到 docker 容器指定目錄配置,也可以寫到 Docokerfile 中 -->
? ? ? ? ? ? ? ? ? ? <resources>
? ? ? ? ? ? ? ? ? ? ? ? <resource>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <targetPath>/</targetPath>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <directory>${project.build.directory}</directory>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <include>${project.build.finalName}.jar</include>
? ? ? ? ? ? ? ? ? ? ? ? </resource>
? ? ? ? ? ? ? ? ? ? </resources>

? ? ? ? ? ? ? ? ? ? <!--跳過測試-->

? ? ? ? ? ? ? ? ? ? <!-- push到 docker hub 開始 -->
? ? ? ? ? ? ? ? ? ? <!-- serverId 這個是配置在maven的setting.xml中私服的登錄賬戶信息-->
? ? ? ? ? ? ? ? ? ? <!-- ? ? ? ? ? ? ? ? ? ?<serverId>docker-hub</serverId>-->
? ? ? ? ? ? ? ? ? ? <retryPushCount>3</retryPushCount>
? ? ? ? ? ? ? ? ? ? <retryPushTimeout>2000</retryPushTimeout>
? ? ? ? ? ? ? ? ? ? <registryUrl>10.xx.xx.xx:5000</registryUrl>
? ? ? ? ? ? ? ? ? ? <!-- 是否自動推送到Registry Server, 建議手動推送 -->
? ? ? ? ? ? ? ? ? ? <pushImage>${docker.push}</pushImage>
? ? ? ? ? ? ? ? ? ? <!-- push到 docker hub 結束 -->
? ? ? ? ? ? ? ? </configuration>
? ? ? ? ? ? </plugin>

重要配置解釋:

  • dockerHost:docker所在服務器的ip和開放的端口
  • imageName:最終構建的鏡像名稱
  • dockerDirectory:本地dockerfile文件存放路徑
  • targetPath:本地jar包生成位置
  • registryUrl:服務器docker的倉庫地址
  • pushImage:是否在構建鏡像后同時推送到Docker倉庫

2.2 dockerfile

在本地項目的src/main下創(chuàng)建docker目錄,在docker目錄下創(chuàng)建dockerfile文件

FROM 10.xx.xx.xx:5000/java
VOLUME /tmp
ENV LANG C.UTF-8
COPY *.jar app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime?
RUN echo "Asia/Shanghai" > /etc/timezone?
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Djava.util.Arrays.useLegacyMergeSort=true", "-jar","app.jar"]

2.3 驗證

此時,對該項目進行mvn install時,相當于會同時進行docker:build的動作,將本地項目jar包構建成鏡像到服務器中

2.4 統(tǒng)一dockerfile

如果每個服務的鏡像構建沒有差異,可以將dockerfile從子項目中抽出來,就不需要在每一個項目模塊中都創(chuàng)建相同的文件,直接放在項目根路徑下就可以進行通用,同時修改pom配置

<!--指定dockerfile文件路徑-->
<dockerDirectory>${project.parent.basedir}/docker</dockerDirectory>

此時的dockerfile存儲位置為項目父級目錄的docker文件夾下。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • docker?搭建?ElasticSearch過程解析

    docker?搭建?ElasticSearch過程解析

    這篇文章主要介紹了docker搭建ElasticSearch的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,,需要的朋友可以參考下
    2023-08-08
  • Docker搭建簡單的應用棧與容器Hello World訪問詳解

    Docker搭建簡單的應用棧與容器Hello World訪問詳解

    這篇文章主要介紹了Docker搭建簡單的應用棧與容器Hello World訪問,結合實例形式詳細分析了Docker應用容器棧的獲取、互聯(lián)、啟動、配置以及應用訪問測試相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • 一文弄懂docker的緩存機制

    一文弄懂docker的緩存機制

    Docker的緩存機制是指當你構建鏡像時,Docker會盡可能重用之前步驟的輸出,本文主要介紹了一文弄懂docker的緩存機制,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Docker部署SonarQube的詳細流程

    Docker部署SonarQube的詳細流程

    SonarQube是一款開源代碼檢測工具,運作流程是這樣的,先通過 sonar-scanner 插件掃描代碼,把數(shù)據存儲到數(shù)據庫,sonarQube 讀取數(shù)據庫,將數(shù)據庫展現(xiàn)在 web 平臺,本篇介紹通過 docker 來安裝,感興趣的朋友一起看看吧
    2022-02-02
  • Docker部署rabbitmq遇到的兩個問題

    Docker部署rabbitmq遇到的兩個問題

    當使用docker部署rabbitmq時遇到兩個問題,訪問交換機時報錯,另一種是訪問channel時報錯,本文給大家分享解決方案,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 詳解Docker數(shù)據管理(數(shù)據卷&數(shù)據卷容器)

    詳解Docker數(shù)據管理(數(shù)據卷&數(shù)據卷容器)

    容器中管理數(shù)據主要有兩種方式,這篇文章主要介紹了詳解Docker數(shù)據管理(數(shù)據卷&數(shù)據卷容器) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • docker安裝目錄遷移的兩種常用方法

    docker安裝目錄遷移的兩種常用方法

    docker目錄的遷移其實非常簡單,今天小編給大家分享兩種方法幫助大家解決docker安裝目錄遷移問題,感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • docker容器分配固定ip的實現(xiàn)示例

    docker容器分配固定ip的實現(xiàn)示例

    如果不固定ip,每次主機重啟后,docker會動態(tài)給容器分配ip,導致redis容器的IP自動換了 ,然后還得去改配置就很煩,本文主要介紹了docker容器分配固定ip的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • docker如何部署tomcat應用

    docker如何部署tomcat應用

    這篇文章主要介紹了docker如何部署tomcat應用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • docker容器如何優(yōu)雅的終止詳解

    docker容器如何優(yōu)雅的終止詳解

    最近公司在試驗如何將項目部署到docker容器中去,這其中涉及到一個技術環(huán)節(jié),那就是如何讓docker容器優(yōu)雅的終止。所謂優(yōu)雅終止,指的就是程序在退出前有清理資源,保存必要中間狀態(tài),持久化內存數(shù)據的機會。下面通過這篇大家一起由簡單到復雜逐一考量一下。
    2016-11-11

最新評論

肃宁县| 驻马店市| 靖安县| 朝阳县| 皋兰县| 屯昌县| 洛隆县| 会东县| 景洪市| 宁阳县| 察哈| 渑池县| 左权县| 布拖县| 高州市| 溧水县| 五峰| 云林县| 商丘市| 萍乡市| 云和县| 洛浦县| 香港| 苗栗县| 双桥区| 城步| 调兵山市| 玉田县| 濮阳市| 新乐市| 钦州市| 高碑店市| 莲花县| 阳朔县| 区。| 通州区| 香河县| 西乌珠穆沁旗| 满城县| 兴国县| 沐川县|