教你如何利用docker-maven-plugin自動(dòng)化部署
1、docker-maven-plugin 介紹
在我們持續(xù)集成過(guò)程中,項(xiàng)目工程一般使用 Maven 編譯打包,然后生成鏡像,通過(guò)鏡像上線,能夠大大提供上線效率,同時(shí)能夠快速動(dòng)態(tài)擴(kuò)容,快速回滾,著實(shí)很方便。docker-maven-plugin 插件就是為了幫助我們?cè)贛aven工程中,通過(guò)簡(jiǎn)單的配置,自動(dòng)生成鏡像并推送到倉(cāng)庫(kù)中。
**作用:
在編譯工程時(shí),能自動(dòng)生成docker image,還可以遠(yuǎn)程推送至倉(cāng)庫(kù),只需要在maven的配置文件pom.xml中合理的配置**
例子一(編譯時(shí)自動(dòng)生成docker鏡像):
1、maven 配置:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--注意imageName一定要是符合正則[a-z0-9-_.]的,否則構(gòu)建不會(huì)成功-->
<imageName>myserver:v1</imageName>
<!-- 指定了Dockfile的目錄,所以需要在項(xiàng)目的src/main下創(chuàng)建一個(gè)docker目錄,并在其目錄中配置Dockerfile文件 -->
<dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
<skipDockerBuild>false</skipDockerBuild>
<!-- resources的內(nèi)容會(huì)復(fù)制 dockerDirectory(也就是構(gòu)建上下文)中 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2、然后在項(xiàng)目的src\main\resources\docker(就是上面配置的dockerDirectory目錄),創(chuàng)建一個(gè)名為Dockerfile的文件內(nèi)容如下:
FROM java:8 MAINTAINER blue ADD mydocker-0.0.1-SNAPSHOT.jar mydocker.jar ENTRYPOINT ["java", "-jar", "/mydocker.jar"]
3、設(shè)置系統(tǒng)環(huán)境變量,用于指定需要連接的docker daemon的主機(jī)和端口
前面講過(guò),docker是C/S架構(gòu),docker-maven-plugin擔(dān)任client角色,服務(wù)器則需要環(huán)境變量指定

4、執(zhí)行mvn clean install docker:build,項(xiàng)目編譯完成后自動(dòng)構(gòu)建鏡像,執(zhí)行docker images查看鏡像是否存在:

例子二(鏡像推送至倉(cāng)庫(kù),基于例子一):
1、打開maven配置文件 setting.xml,加入倉(cāng)庫(kù)賬號(hào)信息:
<servers>
<server>
<id>docker-hub</id>
<username>blueiii</username>
<password>xxxx</password>
<configuration>
<email>xxxxx@163.com</email>
</configuration>
</server>
</servers>
2、修改pom.xml文件,imageName必須跟倉(cāng)庫(kù)路徑一致:
<imageName>blueiii/mydocker:v1</imageName>
3、修改pom.xml文件,增加如下配置
<pushImage>true</pushImage> <serverId>docker-hub</serverId> <registryUrl>https://hub.docker.com/</registryUrl>
4、同樣執(zhí)行mvn clean install docker:build,自動(dòng)構(gòu)建鏡像并上傳至docker hub:

到此這篇關(guān)于教你如何利用docker-maven-plugin自動(dòng)化部署的文章就介紹到這了,更多相關(guān)docker maven plugin自動(dòng)化部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟
RabbitMQ是一款開源的消息隊(duì)列中間件,能夠在分布式系統(tǒng)中實(shí)現(xiàn)可靠的消息傳遞,本文主要介紹了Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Docker部署ELK7.3.0日志收集服務(wù)最佳實(shí)踐
這篇文章主要介紹了Docker部署ELK7.3.0日志收集服務(wù)最佳實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
docker端口映射及外部無(wú)法訪問(wèn)問(wèn)題
這篇文章主要介紹了docker端口映射及外部無(wú)法訪問(wèn)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
教你用100?行shell實(shí)現(xiàn)Docker詳解
這篇文章主要為大家介紹了教你用100?行shell實(shí)現(xiàn)Docker詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
通過(guò)Dockerfile構(gòu)建Docker鏡像的方法步驟
這篇文章主要介紹了通過(guò)Dockerfile構(gòu)建Docker鏡像的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
docker部署fastapi的實(shí)現(xiàn)步驟
本文主要介紹了docker部署fastapi的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Docker在CentOS7下不能下載鏡像timeout的解決辦法(圖解)
本文給大家記錄下Docker在CentOS7下不能下載鏡像timeout問(wèn)題的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-11-11

