自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

三步搞定!Spring Boot項(xiàng)目秒變Docker容器,部署效率翻倍

開(kāi)發(fā) 前端
你是否還在為服務(wù)器環(huán)境配置抓狂?是否因“本地能跑,上線就崩”而深夜加班?今天教你用Docker將Spring Boot項(xiàng)目容器化,實(shí)現(xiàn)“一次構(gòu)建,處處運(yùn)行”的絲滑體驗(yàn)!

你是否還在為服務(wù)器環(huán)境配置抓狂?是否因“本地能跑,上線就崩”而深夜加班?今天教你用Docker將Spring Boot項(xiàng)目容器化,實(shí)現(xiàn)“一次構(gòu)建,處處運(yùn)行”的絲滑體驗(yàn)!

1.第一步:項(xiàng)目改造——從Jar包到Docker鏡像

編寫Dockerfile:鏡像的“食譜”

在項(xiàng)目根目錄創(chuàng)建Dockerfile文件,內(nèi)容如下(以Java 8為例)

# 基礎(chǔ)鏡像選擇(推薦輕量級(jí)Alpine)
FROM openjdk:8-jdk-alpine  
# 設(shè)置時(shí)區(qū)(避免日志時(shí)間錯(cuò)亂)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
# 復(fù)制Jar包到鏡像內(nèi)(自動(dòng)匹配Maven打包名稱)
COPY target/*.jar /app/app.jar  
# 暴露端口(需與Spring Boot配置文件一致)
EXPOSE 8080  
# 啟動(dòng)命令(優(yōu)化JVM參數(shù))
ENTRYPOINT ["java", "-jar", "-Duser.timeznotallow=GMT+08", "/app/app.jar"]

關(guān)鍵點(diǎn)

  • 基礎(chǔ)鏡像:推薦alpine版本,體積縮小70%;
  • 時(shí)區(qū)配置:避免容器內(nèi)時(shí)間與宿主機(jī)不一致導(dǎo)致日志混亂;
  • Jar包路徑:target/*.jar自動(dòng)匹配Maven打包結(jié)果,無(wú)需硬編碼。

構(gòu)建鏡像:一鍵生成“軟件安裝包”

終端執(zhí)行命令

# -t指定鏡像名稱:版本,.代表當(dāng)前目錄為構(gòu)建上下文
docker build -t my-springboot-app:1.0.0 .

進(jìn)階技巧

  • 多階段構(gòu)建:分離編譯環(huán)境與運(yùn)行環(huán)境,進(jìn)一步壓縮鏡像體積(適合復(fù)雜項(xiàng)目);
  • Maven插件集成:通過(guò)docker-maven-plugin直接綁定到Maven生命周期,實(shí)現(xiàn)“編譯即打包”。

2.第二步:運(yùn)行容器——秒級(jí)啟動(dòng)服務(wù)

# 映射端口:宿主機(jī)8080→容器8080 | -d后臺(tái)運(yùn)行 | --name容器命名
docker run -d -p 8080:8080 --name my-app my-springboot-app:1.0.0

避坑指南

  • 端口三重確認(rèn):確保Spring Boot配置端口、Dockerfile的EXPOSE端口、docker run映射端口三者一致;
  • 日志持久化:掛載目錄保存日志,避免容器銷毀后丟失
-v /宿主機(jī)路徑/logs:/app/logs

3.高階玩法——效率提升200%的秘訣

IDEA直連Docker:可視化操作真香!

  • 安裝Docker插件:IDEA一鍵管理鏡像/容器,無(wú)需敲命令;
  • 遠(yuǎn)程部署:配置服務(wù)器Docker的2375端口,本地直接推送鏡像到測(cè)試/生產(chǎn)環(huán)境。

Docker Compose編排:微服務(wù)一鍵啟停

創(chuàng)建docker-compose.yml,管理MySQL、Redis等依賴服務(wù)

version: '3'
services:
  app:
    image: my-springboot-app:1.0.0
    ports:
      - "8080:8080"
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root

執(zhí)行docker-compose up -d,所有服務(wù)自動(dòng)拉起。

為什么選擇Docker?

  • 環(huán)境一致性:開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境“零差異”;
  • 快速擴(kuò)縮容:K8s結(jié)合下,秒級(jí)應(yīng)對(duì)流量高峰;
  • 資源隔離:避免多個(gè)服務(wù)端口沖突、依賴打架。

4.小結(jié)

打開(kāi)你的Spring Boot項(xiàng)目,花10分鐘加上Dockerfile,從此告別“在我機(jī)器上好好的”魔咒!

責(zé)任編輯:武曉燕 來(lái)源: JAVA充電
相關(guān)推薦

2025-02-19 07:53:19

2009-11-05 10:01:26

Visual Stud

2018-01-17 22:44:46

云存儲(chǔ)云服務(wù)存儲(chǔ)

2024-08-09 08:52:26

2012-02-28 09:17:27

云計(jì)算

2023-09-25 15:34:14

2019-05-25 15:17:03

雙系統(tǒng)手機(jī)虛擬系統(tǒng)

2023-01-10 16:30:22

Spring數(shù)據(jù)庫(kù)

2017-05-08 10:39:31

打印機(jī)網(wǎng)頁(yè)邊距

2024-02-19 00:00:00

DockerNginx反向代理

2021-03-02 07:02:45

Linux操作系統(tǒng)

2011-07-13 09:54:22

VMware故障vSphere

2009-02-04 09:45:05

Java SocketSocket APIJava編程

2020-11-04 00:00:29

Kerberos協(xié)議身份

2009-08-11 09:47:01

Spring整合Str

2012-08-08 17:05:36

App運(yùn)營(yíng)

2021-09-04 23:27:58

Axios源碼流程

2016-02-17 14:37:47

云遷移云退出戰(zhàn)略

2022-10-08 08:41:32

JDBCJavaLinux

2013-06-05 10:06:42

創(chuàng)業(yè)創(chuàng)業(yè)順序如何創(chuàng)業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)