perfectstorm88 / dc-help

docker-compose工程部署时的辅助脚本

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

在这里插入图片描述

@[TOC]

参考博文:

docker部署规范-目录结构与辅助工具

本规范根据多个项目实践总结,通过目录结构规范化,结合辅助工具,可以降低在多节点、新环境部署中的重复工作与沟通工作量,大幅提供部署效率。

规范部署目录结构

目录结构的规划基于下面几点考虑:

  • 一个主机上可以部署多套系统
  • 一个系统应该是”自洽“的,具有完整的逻辑性,系统涉及的所有文件是自包含的
  • 目录结果尽量简单,便于管理(不再执行dockcer-compose up --build命令),本地的配置修改通过volumes文件夹或文件挂载的方式进行容器内文件覆盖完成

目录结构如下所示:

  • [产品]-deplopy:
    • docker-compose.yml: 主文件
    • conf: 配置文件,如nginx配置,mysql配置文件等
      • web/nginx.conf: nginx的配置文件夹,例如路由配置,安全设置等。
      • web/ca/ :nginx的证书文件目录。
      • mysql/ :msql的配置文件等
    • data: 运行过程中的数据,如数据库存储目录,程序的临时文件目录
      • mysql/ :msql的数据库文件目录
      • mongo/ :mongodb的数据库文件目录
    • jar: 包含服务用的jar文件、或者其他格式的代码打包文件等
    • log: 程序日志目标
    • back: 程序备份目录

辅助工具解决

辅助工具参考:github代码 dc-help 工具安装

git clone https://github.com/perfectstorm88/dc-help
cd dc-help
python setup.py install

在docker-compose.yml所在目录,执行dc-help -h

usage: dc-help COMMAND

docker-compose辅助工具,帮助管理镜像、版本文件

optional arguments:
  -h, --help           show this help message and exit

COMMAND:
  {image,file,daemon}
    image              管理docker-compose.yml中的镜像,打包、装载、清理、升级
    file               对文件夹进行压缩和解压缩,默认是conf、data、jar等文件夹
    daemon             daemon的状态、启动和停止

其中dc-help image -h

usage: dc-help COMMAND image [-h] (--pack | --unpack | --clear | --upgrade)

optional arguments:
  -h, --help  show this help message and exit
  --pack      对镜像进行自动打包
  --unpack    对镜像进行自动装载
  --clear     对镜像文件进行清理
  --upgrade   对镜像文件进行自动装载,然后升级`

功能介绍

  • dc-help image --pack:对项目的镜像进行自动打包
  • dc-help image --unpack:对项目的镜像进行自动装载
  • dc-help image --clear:对项目的镜像进行清理
  • dc-help image --upgrade:扫描备份目录,判断是否有镜像更新,进行自动装载,更新集群服务
  • dc-help file --pack:对项目的配置和数据文件进行自动打包压缩
  • dc-help file --unpack:对项目的配置和数据文件进行自动解压缩
  • dc-help daemon --status:查看自动升级服务的状态,running 或 not running
  • dc-help daemon --start:启动自动升级服务
  • dc-help daemon --stop:停止自动升级服务

安装部署

pip安装

pip install dc-help

源代码安装

git clone https://github.com/perfectstorm88/dc-help.git
cd dc-help
python setup.py install 

离线安装(docker,推荐)

如果部署在客户内网,离线建议采用docker方式,在容器内执行docker命令

  1. 首先下载源代码,构建docker镜像:
git clone https://github.com/perfectstorm88/dc-help.git
cd dc-help
docker build -t dc-help . # 构建docker
docker save dc-help >dc-help-docker-image.tar
gzip dc-help-docker-image.tar
  1. 在内网主机,把dc-help-docker-image.tar.gz上传到部署主机,还原镜像:
docker  load -i dc-help-docker-image.tar
  1. 配置alias,在~/.bashrc中增加alias:(通过 vim ~/.bashrc编辑后,执行 source ~/.bashrc后生效)
alias dc-help='docker run --rm -t -u root  -v $(which docker):/usr/bin/docker  -v $(which docker-compose):/usr/bin/docker-compose  -v /var/run/docker.sock:/var/run/docker.sock  -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v $(pwd):$(pwd)  -w $(pwd) dc-help dc-help'

离线源码安装dc-help工具(centos7)

● (安装setuptools(若没有的话需要安装,视centos的版本,有的环境不需要这一步) https://pypi.org/project/setuptools/36.5.0/ 下载setuptools-36.5.0.tar.gz 不能下过高版本,因为python2语法不支持

tar -zxvf setuptools-36.5.0.tar.gz 
#若外网下载zip格式,则 unzip setuptools-36.5.0.zip
cd setuptools-36.5.0
python setup.py install

源代码安装步骤同上

离线源码安装dc-help工具(centos8)

centos8已经默认不自带python版本,需要先安装python2,参见VirtualBox CentOS8 挂载iso镜像

源代码安装步骤同上

参考

About

docker-compose工程部署时的辅助脚本

License:MIT License


Languages

Language:Python 97.7%Language:Dockerfile 2.3%