Q: 我有一个好插件,希望大家都可以用上,应该如何贡献到镜像插件市场中?
A: 恭喜你,找对地方了!
fork 本项目,在 plugins
目录下创建插件子目录。
比如 plugins/cnbcool/hello-world
添加插件的 Meta 信息plugin-meta.json
到子目录中,字段如下:
{
"name": "npm",
"description": "发布 NPM 包到仓库,支持官方仓库和私有仓库",
"tags": [ "publish", "npm" ],
"mark": "",
"images": "https://hub.docker.com/r/cnbcool/hello-world/tags",
"source": "https://cnb.cool/cnb/plugins/cnbcool/hello-world",
"bugs": "https://cnb.cool/cnb/plugins/cnbcool/hello-world/-/issues",
"logo": "logo.svg"
}
name
: 插件名称,需要全英文,单词之间以中划线-
分隔。description
: 插件描述,简单介绍插件作用。tags
: 标签,是一个字符串数组,用于分类。mark
: 插件角标, 选填。
official
: cnb 官方维护的插件private
: 特定组织、业务使用的插件images
: 插件镜像地址。source
: 源码地址。bugs
: 问题反馈地址。logo
: logo 图片相对地址,可以不填。图片最好为正方形,尺寸大于 100 x 100 即可。添加 logo README.md 等必要文件到插件 Meta 信息所在目录。
提交修改,发起 PR 等待自动检查工具通过和人工审核。
插件仓库更新后还要来这个仓库更新插件信息比较麻烦,cnb/plugins
组织下的仓库可以在 .cnb.yml 中添加流水线模版:
include:
- https://cnb.cool/cnb/plugins/market/-/blob/main/hub.docker.com.yml
- https://cnb.cool/cnb/plugins/market/-/blob/main/.pipeline-for-plugins.yml
这两个模版的作用是:
build、push 镜像到 dockerhub的 cnbcool 或 tencentcom 空间下
配置 PR 流水线检查插件信息、mergeable时自动合并,以及主干更新时通知 market 更新对应插件目录下信息,免去手动更新麻烦。