Shell——docker启动yapi

2023-05-16

文章目录

      • 脚本简介
      • 脚本注解
      • 执行方式
      • 脚本内容

脚本简介

  1. 基于运维统一脚本中、17、平台管理下的Yapi管理平台部署
  2. 系统版本Centos7
  3. docker环境

脚本注解

  1. 该脚本快速部署yapi平台,已通过docker commit把对应的mongo、yapi服务封装至同一镜像中
  2. 应对应服务导致镜像相对较大,大约1.7G左右,启动时需要等待pull(根据网速情况确认)
  3. 采用init容器启动,mongo数据库通过system进行进程管理,单独使用镜像启动服务会出现服务启动失败的情况,建议配合脚本使用

执行方式

sh run.sh init v1.0.3

在这里插入图片描述

  1. 启动时已经运行在后台,日志可通过Ctrl+C进行取消即可
  2. 脚本提供两种方式
  • 第一种初始化mongo数据,会覆盖所有的数据
  • 第二种当前宿主机上已存在mongo的数据,直接启动容器即可

浏览器访问
用户名: admin@admin.com
密码: ymfe.org
在这里插入图片描述

  1. 使用方式自行参看官方文档即可

脚本内容

#!/bin/bash
#该脚本用于init方式启动的镜像,可使用systemctl
#所有者:北城半夏
#
#当前版本
#v1.0.1
###################################################
envs="bcbx"
image_name="yapi"
yapi_port=8089
images_name="${envs}_${image_name}"
registry="registry.cn-hangzhou.aliyuncs.com/bcbx/${images_name}"
yapi_worker_dir="/opt/yapi"
mongo_dir="${yapi_worker_dir}/mongo-data"
###############################################################################################
info(){
  echo -e "\033[32m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[36m$1\033[0m "
}
info1(){
  echo -e "\033[31m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[91m$1\033[0m "
}
info2(){
  echo -e "\033[91m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[34m$1\033[0m "
}
#
run_containerd(){
    case $1 in
        'init')
             docker run -d --name ${image_name} --hostname ${image_name} -p ${yapi_port}:3000 \
                  -u root --privileged=true ${images} /usr/sbin/init ;;
         'start')
             docker run -d --name ${image_name} --hostname ${image_name} -p ${yapi_port}:3000 \
                -v ${mongo_dir}/mongo:/var/lib/mongo -u root --privileged=true ${images} /usr/sbin/init
           #-v ${mongo_dir}:/var/lib/mongo -u root --privileged=true ${images} /usr/sbin/init
    esac
}
run_init(){
[ -d ${mongo_dir} ] || mkdir -p ${mongo_dir}
  cd ${mongo_dir} 
  docker cp ${image_name}:/var/lib/mongo .

}

start_run_yapi(){
#重启服务
run_images ${tag} start
docker exec  ${image_name}  chown -R mongod:mongod /var/lib/mongo
#docker exec -it ${image_name} rm -rf /var/run/mongodb/mongod.pid && systemctl restart mongod 
docker exec ${image_name} sh /opt/startup.sh &
sleep 3
info "  端口: ${yapi_port}"
info "用户名: admin@admin.com"
info "  密码: ymfe.org"
}

##############################################################################################
run_images(){
   local registry_images="${registry}:${1}"  status=$2
   local images=`docker images --format {{.Repository}}:{{.Tag}}|grep ${registry_images}` 
   local num=`docker images --format {{.Repository}}:{{.Tag}}|grep ${registry_images}|wc -l`
        if [ `docker ps -a| grep ${image_name}|wc -l` -eq 1 ];then
                  docker rm -f ${image_name} &>/dev/null
                    [ $? -eq 0 ] && info1 "${image_name} rm success"
                    run_containerd ${status}
        elif [ ${num} -ne 1 ];then
                   info "Pull image ${registry_images},Please wait"
                   docker pull ${registry_images} >${log}/wikmd.log
                   [ $? -eq 0 ] && info "Pull image ${registry_images} success"
                   run_containerd  ${status}
        else
                   run_containerd  ${status}
        fi

}
rm_start(){
if [ `docker ps -a |grep ${image_name} |wc -l` -eq 1 ];then
     docker rm -f ${image_name} &>/dev/null
      [ $? -eq 0 ] && info1 "${image_name} rm success"
fi
}

run(){
  local  status=$1 tag=$2
  if [ ${status} == "init" ];then
      run_images ${tag} ${status}
      run_init 
      start_run_yapi
  elif [ ${status} == "start" ];then
     start_run_yapi
  fi
}
log(){
      info2 "sh $0 init  v1.0.3  初始化"
      #info2 "sh $0 start v1.0.3  启动(mongo目录已存在)"
}

if [ $# -lt 2 ];then
      log
      exit -1
 else
     run $1 $2
fi 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell——docker启动yapi 的相关文章

随机推荐

  • Kali Linux 安装slowhttptest步骤

    Kali Linux 安装slowhttptest步骤 Slowhttptest其实是一个DoS压力测试工具 xff0c 它集成有三种慢速攻击模式 slowloris slow http post slow read attack xff0
  • 在Centos中,程序运行是正常的,外部不能访问,内部可以访问问题解决

    在Centos中 xff0c 程序运行是正常的 xff0c 外部不能访问 xff0c 内部可以访问问题解决 今天遇到一个问题 xff0c 在centos中用python3搭建的一个web服务 xff0c 发现在centos内部可以访问网站
  • 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器

    题目描述 xff1a 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个小目标 xff0c
  • jsoncpp linux平台编译和arm移植

    0x00 下载 http sourceforge net projects jsoncpp 或者 http download csdn net detail chinaeran 8631141 0x01 Linux平台编译 安装 scons
  • 摩斯密码解码脚本

    摩斯密码解码脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0
  • php匹配关键字并跳转页面

    php匹配关键字跳转页面 strstr函数搜索要从目标字符串中搜索的字符串 xff1b strstr函数仅用于检查字符串是否存在 xff1b strstr函数的用法如下 lt php b 61 39 or 39 name 61 GET 39
  • docker常见命令小结

    docker常见命令小结 常见命令 docker ps 查看正在运行的容器 docker exec it 264bb068855e bin bash 进入容器 xff0c 并作出修改 docker commit 3bd0eef03413 l
  • 前端html文件下载,同源与异源下载

    属性说明download下载的资源的名称target打开该连接的方式 self blank href资源的地址 本地 远程地址 a标签跳转 lt DOCTYPE html gt lt html gt lt head gt lt meta c
  • Python图像(字母数字)识别

    本文只针对数字或字母验证码识别 准备工具 tesseract ocr w64 setup v4 1 0 20190314 exepip install pytesseractpip install pillow中文包 tesseract o
  • Python习题

    1 题目 xff1a 编写一个程序 xff0c 使用for循环输出0 10之间的整数 xff1b 代码 xff1a span class token keyword for span i span class token keyword i
  • 面向对象模块和包

    文章目录 1 1 模块1 2 模块的使用2 包 1 1 模块 参考链接 xff1a Python 面向对象 模块和包 来源 xff1a CSDN Python面向对象 模块和包 来源 xff1a CSDN 概念 xff1a 每一个以py为拓
  • SUNDIALS库的编译和使用

    SUNDIALS库的编译和使用 1 简介 SUNDIALS SUite of Nonlinear and DIfferential ALgebraic equation Solvers 是由美国劳伦斯利福摩尔国立实验室 xff08 Lawr
  • 【ing】在Linux虚拟机上安装Sundials库(图文)

    1 Sundials库下载 Sundials下载地址 2 具体步骤 2 1 下载sundials 2 2 0 本次尝试选择sundials 2 2 0进行安装 Sundials文件内容如下 xff1a 2 2 创建安装目录 安装目录名称为
  • 基于docker部署Prometheus

    文章目录 基于Docker搭建Prometheusgitee 介绍Prometheus一 安装运行Prometheus docker版 部署Prometheus1 安装docker联网状态下阿里云离线安装包下载2 下载镜像包3 启动node
  • 程序设计思维与实践 Week11 作业 E 选做题11-1 东东与 ATM

    题目描述 xff1a 一家银行计划安装一台用于提取现金的机器 机器能够按要求的现金量发送适当的账单 机器使用正好N种不同的面额钞票 xff0c 例如D k xff0c k 61 1 2 N xff0c 并且对于每种面额D k xff0c 机
  • kubectl edit

    文章目录 kubectl edit官方文档语法示例 kubectl edit 官方文档 使用默认编辑器 编辑服务器上定义的资源 使用命令行工具获取的任何资源都可以使用edit命令编辑 edit命令会打开使用KUBE EDITOR xff0c
  • kubectl exec

    文章目录 kubectl exec通过bash获得pod中某个容器的TTY xff0c 相当于登录容器 命令行 创建一个test文件 xff1a kubectl exec exec命令同样类似于docker的exec命令 xff0c 为在一
  • kubectl describe

    文章目录 describe语法选项 示例描述一个node详细信息描述一个pod描述calico yaml中的资源类型和名称指定的pod描述所有的pod描述所有包含label k8s app 61 calico kube controller
  • k8s自动化安装脚本(kubeadm-1.21.1)

    文章目录 介绍软件架构安装教程更新内容2023 02 102022 10 202022 08 06准备部署包 操作步骤环境准备结构备注 解压部署包修改host文件初始化环境验证ansible配置 安装k8s集群登录master的节点添加no
  • Shell——docker启动yapi

    文章目录 脚本简介脚本注解执行方式脚本内容 脚本简介 基于运维统一脚本中 17 平台管理下的Yapi管理平台部署系统版本Centos7docker环境 脚本注解 该脚本快速部署yapi平台 xff0c 已通过docker commit把对应