欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker容器部署Java項(xiàng)目的自動(dòng)化腳本

 更新時(shí)間:2025年04月03日 09:09:41   作者:岫珩  
這篇文章主要為大家詳細(xì)介紹了Docker容器中部署Java項(xiàng)目的自動(dòng)化腳本編寫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1. 服務(wù)部署過程

先將Java項(xiàng)目在docker中部署的過程中所有命令列舉

命令均在jar包同級(jí)目錄下進(jìn)行執(zhí)行

1.1 移除舊jar包

正常應(yīng)該會(huì)在更新時(shí)覆蓋,但還是執(zhí)行以下刪除操作

rm -f app.jar

1.2 jar包更新

通過oss工具命令線上更新或者ftp工具上傳更新

這里使用oss工具(使用ftp工具上傳可省略這一步更新操作)

ossutil64 cp oss://sb-dev/sb_back/app.jar app.jar

1.3 停止舊容器

先停止原來的容器

docker stop sb_back

1.4 刪除舊容器

刪除原來的容器

docker rm sb_back

1.5 刪除舊鏡像

檢索并刪除原來的鏡像

docker rmi sb_back:20250327

1.6 構(gòu)建新鏡像

構(gòu)建新的鏡像

docker build -t sb_back:20250327 .

參數(shù)描述

  • build 構(gòu)建命令
  • -t 打標(biāo)簽,TAG的縮寫
  • sb_back:20250327 鏡像名稱和TAG
  • . 當(dāng)前目錄下

1.7 運(yùn)行新容器

運(yùn)行新的容器,自定義名稱,指定端口映射

docker run --name sb_back -p 3006:8089 -d --restart=always sb_back:20250326

參數(shù)描述

  • run 運(yùn)行容器命令
  • –name 定義容器名稱,這里定為sb_back
  • -p 映射端口,將Java服務(wù)端口即容器端口映射到本機(jī)服務(wù)器向外暴露的端口(即后續(xù)訪問該服務(wù)的真實(shí)端口)
  • -d 后臺(tái)運(yùn)行
  • –restart=always 容器運(yùn)行失敗會(huì)自動(dòng)重啟
  • sb_back:$DATE 鏡像及TAG(使用指定鏡像來運(yùn)行容器)

2. 創(chuàng)建shell腳本文件

可以在本地創(chuàng)建后上傳到服務(wù)器或者在服務(wù)器jar包同級(jí)目錄創(chuàng)建

2.1 本地創(chuàng)建并上傳到服務(wù)器

先在本地編輯(VSCode等編輯器創(chuàng)建一個(gè)sb_back.sh文件),將腳本內(nèi)容粘貼進(jìn)來并保存

使用FTP工具或者oss工具上傳

ossutil64 cp oss://sb-dev/sb_back/sb_back.sh sb_back.sh

注意,由于Windows和Linux換行符不同,腳本上傳后執(zhí)行可能會(huì)報(bào)錯(cuò),可參考4.3進(jìn)行解決

2.2 服務(wù)器中創(chuàng)建sh文件

在jar包同級(jí)目錄下創(chuàng)建名為sb_back.sh的文件

mkdir sb_back.sh

編輯文件

vim sb_back.sh

將腳本內(nèi)容粘貼進(jìn)來即可

(i開啟輸入模式,esc推出輸出模式,:wq保存并退出)

3. 腳本內(nèi)容

將以上名命令整合到一起就是腳本執(zhí)行的命令,完整內(nèi)容如下

3.1 簡易腳本

停止容器、移除原有容器和鏡像,構(gòu)建鏡像并部署容器的腳本命令

#!/bin/bash
# 1. 停止并刪除舊容器
echo "Stopping and removing old container..."
docker stop sb_back || true
docker rm sb_back || true
# 2. 刪除舊鏡像(可選,強(qiáng)制重新構(gòu)建時(shí)使用)
echo "Removing old image..."
docker rmi $IMAGE_NAME || true
# 3. 構(gòu)建新鏡像
echo "Building new image..."
docker build -t $IMAGE_NAME $DOCKERFILE_PATH
docker build -t sb_back:20250327 .
# 4. 運(yùn)行新容器
echo "Starting new container..."
docker run -d --name sb_back -p 3006:8089 --restart=always sb_back:20250327
echo "Deployment completed!"

注:|| true 用于忽略未找到容器的錯(cuò)誤

3.2 升級(jí)腳本

移除jar包,上傳jar包,停止容器、移除容器和鏡像、構(gòu)建鏡像和運(yùn)行容器等命令整合

并且將容器名鏡像名等以變量的形式傳入

其中以時(shí)間變量作為鏡像TAG

#!/bin/bash
# 定義當(dāng)前日期,后續(xù)使用日期作為鏡像TAG版本
DATE=$(date +%Y%m%d)
# 定義當(dāng)前時(shí)間
CURRENT_TIME=`date +'%Y%m%d_%H%M%S'`
# 或者
# CURRENT_TIME=(date +%Y%m%d_%H%M%S)

# 輸出當(dāng)前時(shí)間內(nèi)容
echo "DATE = "$DATE
echo "CURRENT_TIME = "$CURRENT_TIME

# 0. 移除舊jar包,放入新的jar包
echo "Removing jar and copy new jar..."
rm -f app.jar
ossutil64 cp oss://dev/3_JWH/01_SB_BACK/app.jar app.jar

# 部署配置(根據(jù)實(shí)際情況修改)
CONTAINER_NAME="sb_back"  # Docker容器名稱
IMAGE_TAG=$DATE
IMAGE_NAME=$CONTAINER_NAME:$IMAGE_TAG      # Docker鏡像名稱
# JAR_PATH="./target/*.jar"       # 生成的Jar包路徑
DOCKERFILE_PATH="."             # Dockerfile所在目錄,jar包和dockerfile文件在同一位置
PORT_MAPPING="3006:8089"        # 端口映射, Java服務(wù)端口8089映射到本機(jī)服務(wù)器3006,外部訪問時(shí)訪問的就是3006端口

# 1. 停止并刪除舊容器
echo "Stopping and removing old container..."
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true

# 2. 刪除舊鏡像(可選,強(qiáng)制重新構(gòu)建時(shí)使用)
echo "Removing old image..."
docker rmi $IMAGE_NAME || true

# 3. 構(gòu)建新鏡像
echo "Building new image..."
docker build -t $IMAGE_NAME $DOCKERFILE_PATH

# 4. 運(yùn)行新容器
echo "Starting new container..."
docker run -d \
  --name $CONTAINER_NAME \
  -p $PORT_MAPPING \
  --restart=always \
  $IMAGE_NAME

echo "Deployment completed!"

4. 執(zhí)行腳本

4.1 檢查腳本

執(zhí)行前可先檢查以下腳本內(nèi)容

cat sb_back.sh

4.2 執(zhí)行腳本

在腳本所在目錄,執(zhí)行命令

sh sb_back.sh

注意:由于Windows中的換行符和Linux環(huán)境中的有所不同,可能會(huì)導(dǎo)致sh腳本執(zhí)行報(bào)錯(cuò),如報(bào)錯(cuò)可參考下一步解決

執(zhí)行截圖

4.3 報(bào)錯(cuò)處理

如果報(bào)錯(cuò)可先執(zhí)行以下命令將替換Windows中的換行符為Linux的換行符

sed -i 's/\r$//' your_script.sh

更多解決方案參考文章:Docker構(gòu)建鏡像運(yùn)行容器腳本出現(xiàn)換行符問題的解決

5. 查看鏡像

執(zhí)行腳本后,使用命令查看鏡像是否更新

docker images

6. 查看容器

查看容器是否已經(jīng)創(chuàng)建并運(yùn)行

查看正在運(yùn)行的容器

docker ps

以上就是Docker容器部署Java項(xiàng)目的自動(dòng)化腳本的詳細(xì)內(nèi)容,更多關(guān)于Docker部署Java項(xiàng)目的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Docker部署Nginx設(shè)置環(huán)境變量的實(shí)現(xiàn)步驟

    Docker部署Nginx設(shè)置環(huán)境變量的實(shí)現(xiàn)步驟

    本文主要介紹了Docker部署Nginx設(shè)置環(huán)境變量的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Docker?Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解

    Docker?Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Docker?Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 解決使用Docker Compose管理容器的問題

    解決使用Docker Compose管理容器的問題

    在Docker Compose中,根據(jù)一個(gè)配置文件,將所有與應(yīng)用系統(tǒng)相關(guān)的應(yīng)用和對應(yīng)的容器進(jìn)行配置,再根據(jù)Docker Compose提供的命令進(jìn)行啟動(dòng),就可以解決上面說的多容器之間的復(fù)雜問題,感興趣的朋友跟隨小編一起看看吧
    2021-09-09
  • 基于docker的?nacos安裝部署過程

    基于docker的?nacos安裝部署過程

    這篇文章主要介紹了基于docker的?nacos安裝部署,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08
  • Docker容器中運(yùn)行flume及啟動(dòng)不輸出運(yùn)行日志問題

    Docker容器中運(yùn)行flume及啟動(dòng)不輸出運(yùn)行日志問題

    這篇文章主要介紹了 Docker容器中運(yùn)行flume及啟動(dòng)不輸出運(yùn)行日志問題及解決方法,需要的朋友參考下吧
    2018-03-03
  • docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟

    docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟,鏡像中包含了應(yīng)用程序所需要的運(yùn)行環(huán)境,函數(shù)庫,配置,以及應(yīng)用本身等各種文件,這些文件分層打包而成,需要的朋友可以參考下
    2024-03-03
  • Docker如何保存對容器的修改問題

    Docker如何保存對容器的修改問題

    這篇文章主要介紹了Docker如何保存對容器的修改問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker如何配置鏡像加速器

    docker如何配置鏡像加速器

    文章介紹了在Coding中遇到自動(dòng)構(gòu)建容器失敗的問題,最終通過配置阿里云的鏡像加速器和使用Docker Buildx解決了問題
    2024-12-12
  • 詳解掛載運(yùn)行的docker容器中如何掛載文件系統(tǒng)

    詳解掛載運(yùn)行的docker容器中如何掛載文件系統(tǒng)

    這篇文章主要給大家介紹了如何在掛載運(yùn)行中的docker容器中掛載文件系統(tǒng),文中通過一步步的實(shí)踐過程介紹的很詳細(xì),相信對有需要的朋友們來說具有一定的參考借鑒價(jià)值,感興趣的朋友們下面來一起看看吧。
    2016-12-12
  • docker 如何搭建私有倉庫(ubuntu 14.04,Docker版本1.6.4)詳細(xì)介紹

    docker 如何搭建私有倉庫(ubuntu 14.04,Docker版本1.6.4)詳細(xì)介紹

    這篇文章主要介紹了docker 如何搭建私有倉庫(ubuntu 14.04,Docker版本1.6.4)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論