Skip to content

Docker Package Manager, makes using your Docker as easy as package managers (apt, yum, brew).

License

Notifications You must be signed in to change notification settings

songhuangcn/dpm

Repository files navigation

简体中文 | English

DPM

Docker Package Manager, 让你的 Docker 用起来跟包管理器(apt, yum, brew)一样简单。

安装

依赖:

  • Docker
  • Ruby >= 2.6

安装命令:

gem install dpmrb

使用

dpm pacakges                   # 列出所有支持的包
dpm start mysql                # 通过配置 `packages/mysql.yml` 运行 `mysql` 包
dpm stop mysql                 # 停止运行 `mysql` 包
dpm status mysql               # 展示 `mysql` 包的运行状态
dpm help                       # 展示帮助,查看所有功能

包配置

DPM 支持两种包配置:

  1. 项目 repo 目录 packages/ 的 "系统包配置"
  2. 用户目录 ~/.dpm/packages 的 "用户包配置"

系统包配置

"系统包配置" 目标是让一个 Docker 服务跑起来跟原生安装的软件一致,拿 MySQL 来举例:

  • 原生软件 MySQL 安装好运行后,会默认绑定好 3306 端口,那我们的 MySQL 包配置就要做到默认也暴露该服务端口到主机
  • 原生软件 MySQL 安装好后,有固定的配置目录和日志目录,那我们的 MySQL 包配置就要做到也将容器里的这些目录映射到固定的目录

用户包配置

"用户包配置" 有以下使用场景:

  1. DPM 默认包配置不合理想更改,可以先用 "用户包配置" 调试查看结果,然后给 repo 提 MR。
  2. DPM 没有提供你需要的包,需要添加自己包配置。(欢迎给 DPM 贡献你的新包配置)。
  3. DPM 默认包配置不适合本地环境,需要覆盖 "系统包配置"。比如我本地需要跑两个 MySQL 服务,那我就需要把其中一个服务的端口改成其他避免冲突。

添加用户包配置

"用户包配置" 提供了以下命令快速创建:

dpm configure PACKAGE

该命令功能就是在用户目录 ~/.dpm/ 下添加一个新的包配置文件 PACKAGE.yml。如果该包在 "系统包配置" 已经存在,则会将内容初始化到该文件里。

注意: 如果 PACKAGE 参数为 package,则配置的是 "全局系统包配置" config/package.yml,这里的配置会合并到所有包里。

开发

搭建环境

git clone git@github.com:songhuangcn/dpm.git
cd dpm
bin/setup # 需要 Ruby >= 2.6

开发技巧

  • 给所有命令添加 ENV DEBUG 会展示详细错误堆栈,帮助定位问题
  • 开发完后,请使用命令 bin/check 检查代码规范和测试,提前解决一些 CI 失败的情况

推荐工具

About

Docker Package Manager, makes using your Docker as easy as package managers (apt, yum, brew).

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published