欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

一,服務(wù)器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"
}

二,本地項(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>

? ? ? ? ? ? ? ? ? ? <!--格式:私有倉庫/鏡像名稱:版本號(hào), 如果要執(zhí)行push操作, 那么鏡像名稱必須為私有倉庫為前綴,不然無效。-->
? ? ? ? ? ? ? ? ? ? <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>

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

? ? ? ? ? ? ? ? ? ? <!-- push到 docker hub 開始 -->
? ? ? ? ? ? ? ? ? ? <!-- 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和開放的端口
  • imageName:最終構(gòu)建的鏡像名稱
  • dockerDirectory:本地dockerfile文件存放路徑
  • targetPath:本地jar包生成位置
  • registryUrl:服務(wù)器docker的倉庫地址
  • pushImage:是否在構(gòu)建鏡像后同時(shí)推送到Docker倉庫

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)建沒有差異,可以將dockerfile從子項(xiàng)目中抽出來,就不需要在每一個(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)文章

  • 在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作

    在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作

    這篇文章主要介紹了在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • CentOS版本問題安裝Docker報(bào)錯(cuò)的解決方案

    CentOS版本問題安裝Docker報(bào)錯(cuò)的解決方案

    今天小編就為大家分享一篇關(guān)于CentOS版本問題安裝Docker報(bào)錯(cuò)的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析

    容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析

    本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實(shí)踐。此篇博文分為兩個(gè)階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析
    2022-03-03
  • Docker鏡像加速的詳細(xì)教程

    Docker鏡像加速的詳細(xì)教程

    Docker 鏡像非常輕量級(jí),它們是基于分層的文件系統(tǒng)構(gòu)建的,因此許多 Docker 鏡像可以共享相同的基礎(chǔ)鏡像,這也使得它們?cè)诖鎯?chǔ)和傳輸時(shí)非常高效,這篇文章主要介紹了Docker鏡像加速的詳細(xì)教程,需要的朋友可以參考下
    2024-02-02
  • docker容器從入門到癡迷(推薦)

    docker容器從入門到癡迷(推薦)

    這篇文章主要介紹了docker容器從入門到癡迷,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Docker部署Mysql,.Net6,Sqlserver等容器

    Docker部署Mysql,.Net6,Sqlserver等容器

    這篇文章介紹了Docker部署Mysql,.Net6,Sqlserver等容器的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問

    docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問

    在使用docker時(shí),默認(rèn)情況下只能在本地進(jìn)行訪問,本文就來介紹一下docker部署firefox瀏覽器實(shí)現(xiàn)遠(yuǎn)程訪問,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 使用?Docker?搭建適用于?HomeLab?的書簽導(dǎo)航應(yīng)用

    使用?Docker?搭建適用于?HomeLab?的書簽導(dǎo)航應(yīng)用

    在使用新私有化部署的書簽導(dǎo)航應(yīng)用一個(gè)月之后,我們來聊聊書簽導(dǎo)航工具,以及介紹如何使用?Docker?在幾分鐘之內(nèi)部署屬于你自己的書簽導(dǎo)航應(yīng)用
    2022-02-02
  • Docker Base Image自己創(chuàng)建具體實(shí)現(xiàn)

    Docker Base Image自己創(chuàng)建具體實(shí)現(xiàn)

    這篇文章主要介紹了Docker Base Image創(chuàng)建具體實(shí)現(xiàn)的相關(guān)資料,這里提供了詳細(xì)的具體步驟,需要的朋友可以參考下
    2016-11-11
  • Docker下多容器搭建 lamp的詳細(xì)過程(httpd+mysql+php+redis)

    Docker下多容器搭建 lamp的詳細(xì)過程(httpd+mysql+php+redis)

    這篇文章主要介紹了Docker下多容器搭建lamp的詳細(xì)過程(httpd+mysql+php+redis),搭建拉取所需鏡像,本文給大家講解的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-01-01

最新評(píng)論