plugins/slackdrone-slack 是 Drone CI/CD 系统的官方 Slack 通知插件,用于将 CI/CD 流水线的构建事件(如构建开始、成功、失败等)实时通知发送至 Slack 频道。该镜像作为 Drone 生态的一部分,旨在通过集成 Slack 实现构建状态的可视化与团队协作,帮助开发、测试及运维团队快速响应流水线异常,提升协作效率。
drone-slack 作为 Drone 插件,需在项目的 .drone.yml 配置文件中定义为流水线步骤(step)。以下为基础配置示例:
yamlkind: pipeline type: docker name: default steps: - name: slack-notify image: plugins/slack settings: webhook: [***] # Slack Incoming Webhook URL(必填) channel: #dev-team # 目标 Slack 频道(必填,如 #ci-notifications) event: [success, failure] # 触发通知的事件(可选,默认 [failure]) status: [success, failure] # 构建状态(可选,与 event 配合使用) username: Drone CI # Slack 通知显示的用户名(可选,默认 "Drone") icon_url: [***] # 通知头像 URL(可选) message: "构建 {{ build.status }}: {{ repo.name }}#{{ build.number }} ({{ commit.branch }})" # 自定义消息(可选,支持变量替换) template: | # 消息模板(可选,支持 Markdown 与 Slack 附件格式) [{{ repo.name }}] {{ build.status }} ({{ commit.branch }}) 提交作者: {{ commit.author }} 提交信息: {{ commi***ssage }} 构建链接: {{ build.link }}
Drone 插件会将 .drone.yml 中 settings 下的配置项自动映射为环境变量(前缀 PLUGIN_)。若需手动运行容器(如本地测试),可通过 -e 参数传入环境变量:
| 配置参数 | 环境变量对应 | 是否必填 | 描述 |
|---|---|---|---|
webhook | PLUGIN_WEBHOOK | 是 | Slack Incoming Webhook URL(从 Slack 应用获取)。 |
channel | PLUGIN_CHANNEL | 是 | 目标 Slack 频道(格式:#channel-name 或 @user 用于私聊)。 |
event | PLUGIN_EVENT | 否 | 触发通知的事件类型,可选值:success/failure/always/changed。 |
status | PLUGIN_STATUS | 否 | 构建状态过滤,可选值:success/failure/error/killed。 |
username | PLUGIN_USERNAME | 否 | Slack 通知显示的用户名(默认:Drone)。 |
icon_url | PLUGIN_ICON_URL | 否 | 通知头像的 URL(支持 HTTP/HTTPS)。 |
message | PLUGIN_MESSAGE | 否 | 自定义通知消息正文(支持变量替换,如 {{ build.status }})。 |
template | PLUGIN_TEMPLATE | 否 | 消息模板(支持 Markdown 与 Slack 附件格式,优先级高于 message)。 |
link | PLUGIN_LINK | 否 | 是否包含 Drone 构建详情链接(默认:true)。 |
branch | PLUGIN_BRANCH | 否 | 仅特定分支触发通知(如 main,develop,逗号分隔)。 |
消息模板(message 或 template)中可使用以下 Drone 内置变量(通过 Drone Runner 自动注入):
| 变量名 | 描述 |
|---|---|
{{ build.number }} | 构建编号(如 123) |
{{ build.status }} | 构建状态(如 success/failure) |
{{ build.link }} | Drone 构建详情页 URL |
{{ repo.name }} | 仓库名称(如 my-project) |
{{ repo.branch }} | 构建分支(如 main) |
{{ commit.sha }} | 提交 SHA(前 8 位,如 a1b2c3d4) |
{{ commit.author }} | 提交作者(如 ***) |
{{ commi***ssage }} | 提交消息 |
yamlkind: pipeline type: docker name: ci-pipeline steps: - name: test image: golang:1.21 commands: - go mod download - go test -v ./... - name: slack-notify image: plugins/slack settings: webhook: from_secret: slack_webhook # 从 Drone Secret 中读取 Webhook(推荐,避免硬编码) channel: #ci-alerts event: [failure, success] username: Drone CI Bot icon_url: [***] template: | 🚀 [{{ repo.name }}] {{ build.status | upper }} ({{ repo.branch }}) • 提交: {{ commit.sha }} ({{ commit.author }}) • 消息: {{ commi***ssage }} • 详情: {{ build.link }} when: branch: - main # 仅 main 分支触发通知
注意:
webhook建议通过 Drone Secret 管理(在 Drone 控制台为项目添加slack_webhook密钥),避免明文暴露。
模拟 Drone 环境变量,手动发送测试通知:
bashdocker run --rm \ -e PLUGIN_WEBHOOK=[***] \ -e PLUGIN_CHANNEL=#test-notifications \ -e PLUGIN_EVENT=always \ -e PLUGIN_MESSAGE="测试通知:构建成功 🎉" \ -e DRONE_BUILD_STATUS=success \ -e DRONE_REPO_NAME=my-project \ -e DRONE_BUILD_LINK=[***] \ plugins/slack
运行后,目标 Slack 频道将收到一条测试通知。
webhook 是否有效(可通过 Slack 提供的测试按钮验证)、Drone Runner 是否有权限访问互联网(Slack Webhook 需外网访问)。.drone.yml 中 when 条件与 event 配置是否冲突(如 when:branch: [dev] 与 event: [success] 需同时满足)。探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务