Skip to content

Latest commit

 

History

History
101 lines (84 loc) · 3.66 KB

README_ZH.md

File metadata and controls

101 lines (84 loc) · 3.66 KB

ADCTL 工具介绍

英文 | 中文

📖 简介

adctl是一个类似于helm的一个管理chart包的工具,针对底层不使用kubernetes编排而是docker compose管理容器应用的场景。

🚀 功能

  • 通过docker compose安装启动应用容器
  • 通过adctl打包分享应用chart
  • 管理chart包版本,升级、回滚等

🧰 安装

使用Go Install

adctl是一个命令行工具,使用golang开发,所以你可以使用go install的方式安装,前提是你有golang的开发环境,并且配置了$GOBIN环境变量。

go install github.com/shikingram/adctl@latest

使用安装包

下面的脚本可以在linux操作系统上快速安装adctl工具,你可以在Release页面找到最新的版本下载地址替换。

wget https://github.com/shikingram/adctl/releases/download/v1.2.2/linux_adctl_amd64.tar.gz && \
tar -zxvf linux_adctl_amd64.tar.gz && \
chmod +x ./__LINUX_ADCTL_AMD64__/adctl && \
mv ./__LINUX_ADCTL_AMD64__/adctl /usr/bin

⚙️ 示例

先决条件

adctl依赖于docker和docker-compose,所以你的环境中必须包含docker插件,且版本最低要求如下:

$docker --version 
Docker version 20.10.11, build dea9396

docker 安装地址:where-to-get-docker

本仓库代码中包含了示例应用程序chart包,它是一个mysqldocker compose模板包括adminer管理工具,并且提供了配置好的参数可以设置。

首先我们克隆本仓库代码到本地环境

git clone https://github.com/shikingram/adctl.git

安装

使用adctl install命令安装该chart包

adctl install -f adctl/examples/my-values.yaml example adctl/examples

我们在自定义的参数中配置映射了本机的8001端口映射,所以打开127.0.0.1:8001就可以使用这个mysql数据库了

卸载

执行下面命令可以卸载该应用,--clean-instance会删除当前应用实例的本地存储数据。

adctl uninstall example --clean-instance

📢 备注

使用repo命令

和helm类似,我们可以使用adctl repo add添加仓库到本地环境中,然后使用仓库名/包名指定安装,同时提供list remove update等命令

为了和kubernetes仓库区分开,adctl的chart包Chart.yaml中需要包含下面annotations指定类型,不包含该注释的chart包不会被加载repo中

apiVersion: v2
annotations:
  category: docker-compose
name: sopa
description: This is sopa project.
version: "0.2.0"
appVersion: "0.2.0"
keywords:
  - sopa
  - docker-compose

chart包结构

一个chart包的结构如下

example-chart
├── Chart.yaml
├── templates
│   ├── 01-app-mysql.yaml.gtpl
│   ├── NOTES.txt
│   └── config
│       └── mysql
│           └── config.gtpl
└── values.yaml

adctl对模板的文件名称进行了限制

  • 必须使用数字-app|job-服务名的格式
  • 数字会进行排序,按顺序执行部署
  • job类型的服务只会在install时执行一次,upgrade时不会执行

本地运行数据

应用服务启动运行后会在本地生成instance目录,这里包含了执行的dockercompose.yaml文件和服务运行产生的storage存储数据。

uninstall时默认不会删除该目录,但是可以指定--clean-instance强制删除。

🖇 更多信息

想要获取更多信息,尝试使用adctl --help查看更多使用细节。