教你如何利用docker-maven-plugin自動化部署
1、docker-maven-plugin 介紹
在我們持續(xù)集成過程中,項(xiàng)目工程一般使用 Maven 編譯打包,然后生成鏡像,通過鏡像上線,能夠大大提供上線效率,同時(shí)能夠快速動態(tài)擴(kuò)容,快速回滾,著實(shí)很方便。docker-maven-plugin 插件就是為了幫助我們在Maven工程中,通過簡單的配置,自動生成鏡像并推送到倉庫中。
**作用:
在編譯工程時(shí),能自動生成docker image,還可以遠(yuǎn)程推送至倉庫,只需要在maven的配置文件pom.xml中合理的配置**
例子一(編譯時(shí)自動生成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)建不會成功--> <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)容會復(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ī)和端口
前面講過,docker是C/S架構(gòu),docker-maven-plugin擔(dān)任client角色,服務(wù)器則需要環(huán)境變量指定
4、執(zhí)行mvn clean install docker:build,項(xiàng)目編譯完成后自動構(gòu)建鏡像,執(zhí)行docker images查看鏡像是否存在:
例子二(鏡像推送至倉庫,基于例子一):
1、打開maven配置文件 setting.xml,加入倉庫賬號信息:
<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必須跟倉庫路徑一致:
<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,自動構(gòu)建鏡像并上傳至docker hub:
到此這篇關(guān)于教你如何利用docker-maven-plugin自動化部署的文章就介紹到這了,更多相關(guān)docker maven plugin自動化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker構(gòu)建一個(gè)Git鏡像使用clone倉庫
這篇文章主要介紹了使用Docker構(gòu)建一個(gè)Git鏡像使用clone倉庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Docker部署前后端分離項(xiàng)目的三種方式小結(jié)
本文主要介紹了Docker部署前后端分離項(xiàng)目的三種方式小結(jié),包含通過兩個(gè)容器部署,通過compose編排容器自動部署和將前后端項(xiàng)目打成一個(gè)鏡像部署的三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)
這篇文章主要介紹了解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明
這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03docker創(chuàng)建并運(yùn)行一個(gè)MySql容器,并將宿主機(jī)直接掛載到容器
這篇文章主要介紹了docker創(chuàng)建并運(yùn)行一個(gè)MySql容器,并將宿主機(jī)直接掛載到容器問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09