IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 通过脚本更新docker-compose中的服务 -> 正文阅读

[系统运维]通过脚本更新docker-compose中的服务

概述

????????由于服务每次重启更新都要改配置文件,手动输入多个命令执行,操作繁琐,为了提升工作效率,现在使用脚本进行升级,减少升级时间。

注意:由于脚本是基于docker-compose,所以脚本的目录与docker-compose.yml必须放在同一个目录下,否则无法使用。

脚本内容

#!/bin/bash
app_name="$1"
version="$2"


apps=(
blade-admin
blade-turbine
blade-zipkin
lecent-park
lecent-pay
blade-gateway
blade-auth
blade-log
blade-desk
blade-user
lecent-process
blade-system
blade-resource
lecent-battery
lecent-community
lecent-convenience
lecent-device
lecent-operate
lecent-cabinet
lecent-trash
lecent-door
lecent-mall
lecent-terminal
lecent-open-vidu
leliven-stand-mall
)


#用已有镜像重启
restart(){
docker-compose stop $app_name
echo '----------容器已停止------------'
echo yes | docker-compose rm $app_name
echo '----------容器已删除------------'
docker-compose up -d $app_name
echo '----------容器重启成功----------'
docker-compose logs -f $app_name
}

#获取新的镜像并重启
pull_image_restart(){

echo '------------开始停止容器---------'
docker-compose stop $app_name
echo '----------容器已停止------------'

echo '-----------开始删除容器----------'
echo yes | docker-compose rm $app_name
echo '-----------容器已删除-----------'

imageName=harbor.lecent.cn/blade/$app_name:$version;
docker rmi $imageName;
echo '-----------镜像已删除-----------';

echo '-------开始替换docker-compose.yml对应服务的版本号'
old_version=harbor.lecent.cn/blade/$app_name.*
new_version=harbor.lecent.cn/blade/$app_name:$version'"'
sed -i "s|$old_version|$new_version|g" docker-compose.yml
echo '-------------docker-compose.yml---版本替换成功'

echo '----------获取新的镜像并重启------------'
docker-compose up -d $app_name
echo '----------容器重启成功----------'
docker-compose logs -f $app_name
}


if [ ! -n "$1" ] ;then
    echo "服务名不能为空,请传入服务名!"
    exit
elif [ ! -n "$2" ] ;then
    
     if [[ ! "${apps[@]}"  =~ "${1}" ]]; then
        echo "服务:[$1] 不存在,请检查后重试! "
        exit
     fi
    


    echo "服务名:["${app_name}"],用已有镜像重启"
    restart
else
    
     if [[ ! "${apps[@]}"  =~ "${1}" ]]; then
        echo "服务:[$1] 不存在,请检查后重试! "
        exit
     fi
    
    echo "服务名:["${app_name}"],版本号:["${version}"],使用版本["${version}"]重启"
    pull_image_restart
fi

用法

????????脚本有两个参数,第一个参数为服务名,第二个参数为镜像版本号,其中服务名为必填项,版本号不是必填项,当版本号为空时,用本地镜像重启,当版本号不为空时,用指定的版本号重启。

不传参数时提示:

[root@node12 docker]# sh restart-compose.sh 
服务名不能为空,请传入服务名!

当服务名不存在时提示:

[root@node12 docker]# sh restart-compose.sh 111
服务:[111] 不存在,请检查后重试!

重启某个服务:

[root@node12 docker]# sh restart-compose.sh lecent-park
服务名:[lecent-park],用已有镜像重启

以指定的版本重启服务:

[root@node12 docker]# sh up-d.sh lecent-park 1.0.6
服务名:[lecent-park],版本号:[1.0.6],使用版本[1.0.6]重启
 

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:20:35  更:2021-10-17 12:21:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:05:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码