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

使用Maven打包構(gòu)建Docker鏡像并推送到倉(cāng)庫(kù)

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

對(duì)于開(kāi)發(fā)完成的服務(wù)要發(fā)布至服務(wù)器Docker時(shí),我剛學(xué)習(xí)了解Docker時(shí)構(gòu)建鏡像方式是將我的本地服務(wù)先通過(guò)maven打包稱為jar包,然后再上傳至我的服務(wù)器上,通過(guò)Dockerfile將其構(gòu)建成為鏡像。

后來(lái)才了解了直接通過(guò)maven命令直接打包構(gòu)建的方式,以下是完成這一操作的步驟。

一,服務(wù)器Docker配置

修改daemon.json文件,開(kāi)放端口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"
}

二,本地項(xiàng)目maven配置

2.1 pom.xml

在項(xiàng)目的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>
? ? ? ? ? ? ? ? ? ? <!-- 當(dāng)mvn執(zhí)行install操作的時(shí)候,執(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服務(wù)器 編譯image -->
? ? ? ? ? ? ? ? ? ? <dockerHost>http://10.xx.xx.xx:2375</dockerHost>

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

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

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

? ? ? ? ? ? ? ? ? ? <!--跳過(guò)測(cè)試-->

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

重要配置解釋:

  • dockerHost:docker所在服務(wù)器的ip和開(kāi)放的端口
  • imageName:最終構(gòu)建的鏡像名稱
  • dockerDirectory:本地dockerfile文件存放路徑
  • targetPath:本地jar包生成位置
  • registryUrl:服務(wù)器docker的倉(cāng)庫(kù)地址
  • pushImage:是否在構(gòu)建鏡像后同時(shí)推送到Docker倉(cāng)庫(kù)

2.2 dockerfile

在本地項(xiàng)目的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 驗(yàn)證

此時(shí),對(duì)該項(xiàng)目進(jìn)行mvn install時(shí),相當(dāng)于會(huì)同時(shí)進(jìn)行docker:build的動(dòng)作,將本地項(xiàng)目jar包構(gòu)建成鏡像到服務(wù)器中

2.4 統(tǒng)一dockerfile

如果每個(gè)服務(wù)的鏡像構(gòu)建沒(méi)有差異,可以將dockerfile從子項(xiàng)目中抽出來(lái),就不需要在每一個(gè)項(xiàng)目模塊中都創(chuàng)建相同的文件,直接放在項(xiàng)目根路徑下就可以進(jìn)行通用,同時(shí)修改pom配置

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

此時(shí)的dockerfile存儲(chǔ)位置為項(xiàng)目父級(jí)目錄的docker文件夾下。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker?搭建?ElasticSearch過(guò)程解析

    docker?搭建?ElasticSearch過(guò)程解析

    這篇文章主要介紹了docker搭建ElasticSearch的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,,需要的朋友可以參考下
    2023-08-08
  • Docker搭建簡(jiǎn)單的應(yīng)用棧與容器Hello World訪問(wèn)詳解

    Docker搭建簡(jiǎn)單的應(yīng)用棧與容器Hello World訪問(wèn)詳解

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

    一文弄懂docker的緩存機(jī)制

    Docker的緩存機(jī)制是指當(dāng)你構(gòu)建鏡像時(shí),Docker會(huì)盡可能重用之前步驟的輸出,本文主要介紹了一文弄懂docker的緩存機(jī)制,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Docker部署SonarQube的詳細(xì)流程

    Docker部署SonarQube的詳細(xì)流程

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

    Docker部署rabbitmq遇到的兩個(gè)問(wèn)題

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

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

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

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

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

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

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

    docker如何部署tomcat應(yīng)用

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

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

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

最新評(píng)論

肃南| 克拉玛依市| 永川市| 鄱阳县| 玉环县| 巴彦县| 西昌市| 房产| 师宗县| 新密市| 汉阴县| 枞阳县| 中江县| 清新县| 南安市| 新民市| 九江县| 瑞昌市| 西盟| 新化县| 台东市| 冀州市| 济宁市| 五大连池市| 兴化市| 射洪县| 民和| 娱乐| 柳林县| 无锡市| 巴彦县| 镇安县| 吴堡县| 巩留县| 仪征市| 建水县| 武夷山市| 扎鲁特旗| 仁化县| 离岛区| 汉阴县|