一,創建springboot項目
大家隨意創建一個 springboot 項目就行了,這裏給大家展示一個半成品,稍後可以去gitee上下載源碼。自己創建的話勾選 web 這個依賴即可。然後在本地測試一下自己寫的接口,如果沒問題,就可以發佈了
二,在對自己的項目進行打包
1,找到右下角的Maven Projects,進行如下步驟
2,說說這裏面打包項目的坑,可能會遇到如下錯誤
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...
解決方案:
修改maven-resources-plugin的版本,如下。在進行以上步驟,代碼就能進行打包了
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<!--在這裏修改版本-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</plugin>
</plugins>
</build>
3,最後控制檯出現如下,則打包完成
,4,也可以在這個target目錄下發現jar包已經存在了
三,測試jar包
1,通過如下找到jar包的位置
2,打開後,文件夾中cmd打開命令行提示符
3,輸入java -jar jar包名稱,可以發現本地也能跑,說明jar包沒問題,那就放心的放到服務器上了
四,idea安裝及使用dcoker
1,找到設置,下載dcoker插件即可
2,安裝成功的話,新建Dockerfile文件,可以發現出現高亮
3,編寫Dockerfile文件
#版本爲java8
FROM java:8
#將所有jar包複製
COPY *.jar /app.jar
#服務端口號
CMD ["--server.port=8080"]
#向外面暴露的端口
EXPOSE 8080
#容器啓動的時候運行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
4,使用xftp將Dockerfile文件 和生成 jar 的包傳輸到linux下,我這邊用的是阿里雲服務器
5,在服務器下的 /home 目路下新建一個 /idea 目錄,將傳輸的文件移動到該目錄下即可
6,創建一個容器,最後面是有一個點的
docker build -it zhenghuisheng .
7,在構建成功之後,可以發現這個 Dockerfile 的文件也執行了
8,查看構建的鏡像,已經在裏面了
docker images
五,部署項目
1,運行構建的鏡像
docker run -d -p 8080:8080 --name springboot_web zhenghuisheng
解釋一下
-d :以後臺方式交互運行
-p :暴露端口號第一個8080是暴露linux 的端口號,這樣外部才能連接linux
第二個端口號暴露的是容器的端口號,這樣linux才能連接容器
這樣外部就能通過服務器訪問容器了
--name : 給容器命名,可以通過docker ps下查詢,名字隨意
zhenghuisheng : 上面構建鏡像的名稱
2,查看當前容器是否在運行,
docker ps
可以發現已經在運行了
3,測試能否連通,上一步可以發現一個ports 端口號,於是curl測試一下
4,curl 測試
curl 0.0.0.0:8080
出現一下界面,測試成功
5,瀏覽器訪問一下,輸入服務器外網ip + linux暴露的端口號8080
6,如果沒有出現以上界面,那麼就有以下可能
沒有關閉防火牆,沒有在阿里雲服務器開放端口
具體詳情可以參照另一篇博客:https://blog.csdn.net/zhenghuishengq/article/details/112868488
裏面有許多踩坑以及脫坑的事例
7,可以發現已經到了我項目的登錄界面了。本來想發這個項目到gitee的,想想還是算了
六,總結
由於我這個是在web上進行了部署,很多人肯定是想問爲什麼不需要部署 tomcat 環境的,當時我也有過此疑問,爲什麼不需要呢?後來纔想明白,我們用的是springboot項目,裏面自帶了 tomcat 。
因此到這裏,我們的項目就算是部署成功了,歡迎留言!