springboot中的dockerfile使用
環(huán)境
MACCentos7JDK8SpringBootDockerfile
一、創(chuàng)建springboot項(xiàng)目

上面是springboot的項(xiàng)目結(jié)構(gòu)。
選擇Initalizr Service URL
- 創(chuàng)建springboot項(xiàng)目的時候,選擇https://start.aliyun.com,速度比默認(rèn)的快好幾倍。
- https://start.spring.io/
- https://start.aliyun.com

二、創(chuàng)建Dockerfile文件

Dockerfile內(nèi)容如下:
# 該鏡像需要依賴的基礎(chǔ)鏡像 FROM lhl-docker-java8:1.0 # 將targer目錄下的jar包復(fù)制到docker容器/home/springboot目錄下面目錄下面 ADD ./target/springboot-dockerfile-0.0.1-SNAPSHOT.jar /home/springboot/springboot-dockerfile.jar # 聲明服務(wù)運(yùn)行在8080端口 EXPOSE 8080 # 執(zhí)行命令 CMD ["java","-jar","/home/springboot/springboot-dockerfile.jar"] # 指定維護(hù)者名稱 MAINTAINER Mirror 393015989@qq.com
三、Springboot用maven打包

用maven install命令打包
會在target目錄下生成jar包
遇到的坑
java -jar 命令啟動項(xiàng)目的時候,提示找不到主文件
解決辦法
pom.xml中添加如下配置,如果pom.xml中已經(jīng)有了,就覆蓋一下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
四、制作Docker鏡像

在IDEA的Terminal中,執(zhí)行如下命令:
docker build -t lhl-springboot-docker:1.0 .

出現(xiàn)如上圖結(jié)果,表示鏡像創(chuàng)建成功了??梢杂胐ocker images命令查看

五、創(chuàng)建Docker容器并啟動
執(zhí)行如下命令:
docker run -dp 80:8080 --name lhl-springboot-env lhl-springboot-docker:1.1
用我們剛才創(chuàng)建的鏡像,創(chuàng)建名字叫l(wèi)hl-springboot-env的容器,并啟動

六、檢驗(yàn)結(jié)果
在瀏覽器中輸入localhost

成功,我通過主機(jī)的80端口,訪問六容器里面的8080端口。
七、總結(jié)
lhl-docker-java8:1.0,這個鏡像是我上篇文章做的基礎(chǔ)Java環(huán)境鏡像
在制作的過程中,遇到了springboot找不到主文件的問題,查看了網(wǎng)上那么多資料,只想說一句,寫文章不是拷貝別人,要自己實(shí)踐一下,通過了沒問題了,在發(fā)表。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- 從0到1構(gòu)建springboot web應(yīng)用鏡像并使用容器部署的過程
- dockerfile發(fā)布springboot項(xiàng)目實(shí)踐
- dockerfile的使用及使用dockerfile部署springboot項(xiàng)目的過程
- springboot運(yùn)行到dokcer中 dockerfile的場景分析
- IDEA 配合 Dockerfile 部署 SpringBoot 工程的注意事項(xiàng)
- 利用Dockerfile部署SpringBoot項(xiàng)目的方法
- 使用Maven和遠(yuǎn)程Docker基于Dockerfile構(gòu)建SpringBoot應(yīng)用鏡像
相關(guān)文章
springMVC自定義注解,用AOP來實(shí)現(xiàn)日志記錄的方法
下面小編就為大家分享一篇springMVC自定義注解,用AOP來實(shí)現(xiàn)日志記錄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證
本篇文章主要介紹了JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
java中使用try-catch-finally一些值得注意的事(必看)
下面小編就為大家?guī)硪黄猨ava中使用try-catch-finally一些值得注意的事(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
Java獲取Prometheus監(jiān)控數(shù)據(jù)的方法實(shí)現(xiàn)
本文主要介紹了Java獲取Prometheus監(jiān)控數(shù)據(jù)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯的解
這篇文章主要介紹了MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringBoot項(xiàng)目中如何實(shí)現(xiàn)MySQL讀寫分離詳解
在高并發(fā)下需要對應(yīng)用進(jìn)行讀寫分離,配置多數(shù)據(jù)源,即寫操作走主庫,讀操作則走從庫,主從數(shù)據(jù)庫負(fù)責(zé)各自的讀和寫,緩解了鎖的爭用,提高了讀取性能,這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目中如何實(shí)現(xiàn)MySQL讀寫分離的相關(guān)資料,需要的朋友可以參考下2022-07-07
java中ThreadLocal和ThreadLocalMap淺析
這篇文章主要介紹了java中ThreadLocal和ThreadLocalMap淺析,ThreadLocal類用來設(shè)置線程私有變量?本身不儲存值?主要提供自身引用?和?操作ThreadLocalMap?屬性值得方法,需要的朋友可以參考下2023-09-09
springboot整合token的實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot整合token的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

