Skip to main content

docker-compose helper

Project description

在这里插入图片描述

@[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镜像

源代码安装步骤同上

参考

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dc-help-0.1.1.tar.gz (11.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page