使用Maven和遠(yuǎn)程Docker基于Dockerfile構(gòu)建SpringBoot應(yīng)用鏡像
簡介
由于本人開發(fā)環(huán)境是 Windows,但是生產(chǎn)環(huán)境是 Linux,應(yīng)用開發(fā)完后需要打包并構(gòu)建 Docker 鏡像,但是我不想在本地安裝 Docker,于是便使用遠(yuǎn)程的 Docker 進(jìn)行處理,以下是具體的步驟。
步驟
開啟遠(yuǎn)端 Docker 的訪問接口
本文以 Linux 環(huán)境下的配置為例,執(zhí)行以下命令編輯配置文件:
vim /usr/lib/systemd/system/docker.service
在 ExecStart 后面添加一行(表示啟動2375端口用于監(jiān)聽遠(yuǎn)程操作)
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
執(zhí)行以下命令重啟 Docker 服務(wù)
systemctl daemon-reload && systemctl restart docker
系統(tǒng)中添加環(huán)境變量
系統(tǒng)中添加以下環(huán)境變量:
名稱:DOCKER_HOST 值:tcp://你 docker 所在的IP地址:上一步中配置的端口
如果這時候你的 IDEA 還是打開的,那么你需要關(guān)掉重啟 IDEA,否則環(huán)境變量的配置可能不會生效,或者你也可以直接使用命令的方式打包
配置插件
配置 SpringBoot 打包插件和 Docker 插件,由于我的項目中在父級的 pom 文件中已經(jīng)配置了插件版本管理,所以這里使用的插件是不需要 version 的,具體可以查詢 pluginManagement 這個關(guān)鍵字查看相關(guān)博文,這里不再贅述。
<build>
<!--應(yīng)用程序打包后生成的 jar 名稱-->
<finalName>your-app-name</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--需要加這個,不然打包鏡像找不到啟動文件-->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<configuration>
<repository>cloud/${project.artifactId}</repository>
<buildArgs>
<!--應(yīng)用打包后jar所在的地方,默認(rèn)是在target里面-->
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>編寫 Dockerfile 文件
在你需要構(gòu)建鏡像的應(yīng)用的 pom 文件相同的目錄下,創(chuàng)建一個名為 Dockerfile 的文件,其內(nèi)容如下:
FROM eclipse-temurin:17 COPY target/your-app-name.jar your-app-name.jar ENTRYPOINT ["java","-jar","/your-app-name.jar"]
第一行表示基于 JDK 17 鏡像;
第二行的 COPY,表示復(fù)制你打包好的 jar 包到鏡像中,這里的配置要和上一步驟中 pom 文件的配置吻合;
第三行表示容器啟動后運(yùn)行的命令,這里簡單使用 java -jar 運(yùn)行應(yīng)用即可。
構(gòu)建
首先打包你的程序,由于本人比較懶,就不使用命令的方式打包和構(gòu)建了,以 IDEA 為例,找到你要打包的模塊,點(diǎn)擊 package,這樣就會在 target 文件夾中生成一個jar包,如下圖所示,:

接著找到下面的插件,找到dockerfile,build,這樣會調(diào)用遠(yuǎn)程的 Docker 進(jìn)行構(gòu)建,鏡像也會保存到遠(yuǎn)程的 Docker 中,如下圖所示:

看到控制臺中出現(xiàn)下面這樣的 BUILD SUCCESS 就算是成功了:

接著我們?nèi)ミh(yuǎn)程的 Docker 查詢鏡像,可以看到鏡像已經(jīng)被構(gòu)建好了:

到此這篇關(guān)于使用Maven和遠(yuǎn)程Docker基于Dockerfile構(gòu)建SpringBoot應(yīng)用鏡像的文章就介紹到這了,更多相關(guān)SpringBoot應(yīng)用鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker靈活的構(gòu)建PHP環(huán)境的實(shí)現(xiàn)
這篇文章主要介紹了docker靈活的構(gòu)建PHP環(huán)境的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
docker容器中登陸并操作postgresql的實(shí)現(xiàn)
本文主要介紹了docker容器中登陸并操作postgresql的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
教你使用Docker搭建gitlab社區(qū)漢化版的詳細(xì)過程
很多朋友不太清楚使用Docker搭建gitlab社區(qū)漢化版的過程,總是容易出現(xiàn)錯誤,今天小編抽空給大家分享使用Docker搭建gitlab社區(qū)漢化版的詳細(xì)過程,一起看看吧2021-09-09
Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)
Docker是一種輕量級的容器化平臺,可以幫助開發(fā)人員將應(yīng)用程序及其依賴項打包成一個可移植的容器,這篇文章主要介紹了Docker的徹底刪除與重新安裝完整步驟的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03

