最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Shell腳本實現(xiàn)SpringBoot項目自動化部署到Docker的操作指南

 更新時間:2025年05月30日 10:00:17   作者:LOVE_DDZ  
在日常項目開發(fā)中,我們經(jīng)常會將SpringBoot項目打包并部署到服務(wù)器上的Docker環(huán)境中,為了提升效率、減少重復操作,我們可以通過Shell腳本實現(xiàn)自動化部署,所以本文給大家介紹了使用Shell腳本實現(xiàn)SpringBoot項目自動化部署到Docker的操作指南,需要的朋友可以參考下

一、準備環(huán)境

1. 本地和服務(wù)器要求

  • 本地安裝了 Maven 和 JDK
  • 服務(wù)器操作系統(tǒng)為 Ubuntu 22.04 LTS
  • 服務(wù)器已安裝 Docker,并已配置當前用戶對 Docker 的權(quán)限(加入 docker 用戶組)

2. 本地項目結(jié)構(gòu)示例

project-root/
├── src/
├── target/
│   └── yourapp.jar
├── Dockerfile
└── deploy/
│   └── deploy.sh
└── deploy-to-server.sh

二、編寫部署腳本

在 project-root/deploy 目錄中創(chuàng)建 deploy.sh 腳本(用于服務(wù)器端自動執(zhí)行):

deploy/deploy.sh 內(nèi)容:

#!/bin/bash

APP_NAME="ddz_demo"
IMAGE_NAME="ddz_demo_image"
CONTAINER_NAME="ddz_demo_container"
JAR_FILE="ddz_demo.jar"
EXPOSE_PORT=9090

echo ">>> 清理舊容器(如有)"
docker stop $CONTAINER_NAME 2>/dev/null || true
docker rm $CONTAINER_NAME 2>/dev/null || true
docker rmi $IMAGE_NAME 2>/dev/null || true

echo ">>> 構(gòu)建 Docker 鏡像"
docker build -t $IMAGE_NAME .

echo ">>> 啟動新容器"
docker run -d --name $CONTAINER_NAME -p $EXPOSE_PORT:$EXPOSE_PORT $IMAGE_NAME

注意:確保 Dockerfile 中的 EXPOSE 與實際 Java 服務(wù)端口一致。

三、編寫自動上傳與執(zhí)行腳本

在本地項目根目錄添加一個部署腳本,如 deploy-to-server.sh

deploy-to-server.sh 內(nèi)容:

#!/bin/bash

SERVER_USER="youruser"
SERVER_IP="your.server.ip"
SERVER_DIR="/home/ubuntu/ddz_demo"

echo ">>> 打包項目"
mvn clean package -DskipTests

echo ">>> 創(chuàng)建遠程目錄"
ssh $SERVER_USER@$SERVER_IP "mkdir -p $SERVER_DIR"

echo ">>> 上傳文件"
scp target/ddz_demo.jar Dockerfile deploy/deploy.sh $SERVER_USER@$SERVER_IP:$SERVER_DIR/

echo ">>> 執(zhí)行部署腳本"
ssh $SERVER_USER@$SERVER_IP "chmod +x $SERVER_DIR/deploy.sh && cd $SERVER_DIR && ./deploy.sh"

四、配置 SSH 免密登錄(自動化關(guān)鍵)

如果不想每次上傳/執(zhí)行都輸入密碼,請配置 SSH 免密登錄:

1. 本地生成密鑰(如未生成)

ssh-keygen -t rsa -b 4096

2. 將公鑰添加到服務(wù)器

ssh-copy-id ubuntu@[your.server.ip]

或手動上傳:

cat ~/.ssh/id_rsa.pub | ssh ubuntu@[your.server.ip] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. 驗證

ssh ubuntu@[your.server.ip]

應無需輸入密碼即可登錄。

五、部署過程演示

只需一條命令即可:

bash deploy-to-server.sh

腳本會自動完成:

  • 打包項目
  • 上傳構(gòu)建產(chǎn)物與部署腳本
  • 構(gòu)建 Docker 鏡像
  • 啟動容器服務(wù)

六、常見問題與解決

問題解決方法
Permission denied 上傳失敗確保目標目錄屬于當前用戶或改為 /home/ubuntu
Docker 權(quán)限錯誤將用戶加入 docker 組:sudo usermod -aG docker $USER 并重啟
容器端口配置不一致確保 Dockerfile 中 EXPOSE 和 Java 服務(wù)端口一致
腳本無法執(zhí)行加權(quán)限:chmod +x deploy.sh

如果希望進一步提升部署體驗,還可以引入:

  • Git Hooks + 腳本部署
  • Jenkins / GitHub Actions 遠程觸發(fā)
  • 容器健康檢查 + 日志集中處理

以上就是使用Shell腳本實現(xiàn)SpringBoot項目自動化部署到Docker的操作指南的詳細內(nèi)容,更多關(guān)于Shell實現(xiàn)SpringBoot自動化部署的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring中屬性文件properties的讀取與使用詳解

    Spring中屬性文件properties的讀取與使用詳解

    這篇文章主要介紹了Spring中屬性文件properties的讀取與使用詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 淺談MyBatis-Plus 提示發(fā)生了非法的反射訪問操作

    淺談MyBatis-Plus 提示發(fā)生了非法的反射訪問操作

    本文主要介紹了MyBatis-Plus 提示發(fā)生了非法的反射訪問操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-01-01
  • 教你如何用好 Java 中的枚舉

    教你如何用好 Java 中的枚舉

    在本文中,我們將看到什么是 Java 枚舉,它們解決了哪些問題以及如何在實踐中使用 Java 枚舉實現(xiàn)一些設(shè)計模式。下面小編將為大家詳細介紹
    2021-09-09
  • slf4j與jul、log4j1、log4j2、logback的集成原理

    slf4j與jul、log4j1、log4j2、logback的集成原理

    這篇文章主要介紹了slf4j與jul、log4j1、log4j2、logback的集成原理,以及通用日志框架與具體日志實現(xiàn)系統(tǒng)的機制機制介紹,包括依賴的jar包,jar沖突處理等
    2022-03-03
  • Java中Timer的schedule()方法參數(shù)詳解

    Java中Timer的schedule()方法參數(shù)詳解

    今天小編就為大家分享一篇關(guān)于Java中Timer的schedule()方法參數(shù)詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java枚舉類接口實例原理解析

    Java枚舉類接口實例原理解析

    這篇文章主要介紹了Java枚舉類接口實例原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 超級詳細的Java安裝教程(Mac版)

    超級詳細的Java安裝教程(Mac版)

    Java是一種廣泛使用的編程語言,可用于開發(fā)各種類型的應用程序,這篇文章主要給大家介紹了關(guān)于Mac系統(tǒng)下Java安裝的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 使用maven運行Java Main的三種方法解析

    使用maven運行Java Main的三種方法解析

    這篇文章主要介紹了使用maven運行Java Main的三種方式的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Mybatis實現(xiàn)自定義類型轉(zhuǎn)換器TypeHandler的方法

    Mybatis實現(xiàn)自定義類型轉(zhuǎn)換器TypeHandler的方法

    Mybatis實現(xiàn)自定義的轉(zhuǎn)換器非常的簡單,只需要三步就可以實現(xiàn)自定義類型轉(zhuǎn)換器TypeHandler,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • Spring Cloud Gateway的配置與使用教程

    Spring Cloud Gateway的配置與使用教程

    這篇文章主要介紹了Spring Cloud Gateway的配置與使用,通過本文的介紹,我們了解了Spring Cloud Gateway的核心概念和基本配置,需要的朋友可以參考下
    2023-06-06

最新評論

固原市| 黑水县| 宁强县| 应用必备| 南川市| 邻水| 杭锦旗| 称多县| 伊吾县| 桑植县| 唐山市| 阿勒泰市| 濉溪县| 阆中市| 布拖县| 肥城市| 河东区| 澄迈县| 栾川县| 吉首市| 大城县| 阿拉善右旗| 开远市| 江孜县| 苍山县| 中西区| 四会市| 湘阴县| 皮山县| 黑河市| 奉节县| 萝北县| 灵璧县| 深水埗区| 珲春市| 寻甸| 太和县| 庄河市| 灵川县| 罗江县| 永善县|