
sjafferali/portainer-github-webhook-relay本镜像是一个轻量级Web应用,核心功能为接收GitHub发送的Webhooks事件,并将其转发至Portainer实例,实现GitHub事件与Portainer操作的自动化联动。通过该服务,用户可基于GitHub仓库活动(如代码推送、PR合并等)触发Portainer的部署、更新等管理操作。
bashdocker run -d \ --name github-webhook-relay \ -p 3000:3000 \ -e PORT=3000 \ -e PORTAINER_URL="[***]" \ -e PORTAINER_TOKEN="your-portainer-api-token" \ -e GITHUB_SECRET="your-github-webhook-secret" \ [镜像名称]:[标签]
| 环境变量名 | 描述 | 示例值 | 是否必填 |
|---|---|---|---|
PORT | 应用监听端口 | 3000 | 否(默认3000) |
PORTAINER_URL | Portainer API基础地址(需包含/api路径) | [***] | 是 |
PORTAINER_TOKEN | Portainer API访问令牌(需具备目标操作权限) | ptlr-xxxxxxxxx | 是 |
GITHUB_SECRET | GitHub Webhooks配置的密钥,用于验证请求合法性 | your-webhook-secret-from-github | 是 |
FORWARD_PATH | 转发至Portainer的API路径(如部署接口/stacks/{stackId}/deploy) | /stacks/1/deploy | 否(默认需通过请求参数指定) |
ALLOWED_EVENTS | 允许处理的GitHub事件类型(逗号分隔,如push,pull_request.closed) | push,release.published | 否(默认允许所有事件) |
配置GitHub Webhooks
在GitHub仓库的「Settings > Webhooks」中添加webhook,设置Payload URL为该服务的访问地址(如[***]),Content type选择application/json,填写与环境变量GITHUB_SECRET一致的密钥。
启动转发服务
使用上述docker run命令启动容器,确保环境变量正确配置(尤其是Portainer URL和Token需具备操作权限)。
验证联动效果
触发GitHub事件(如推送代码),检查服务日志确认Webhooks接收与转发状态,同时在Portainer中验证目标操作是否执行(如堆栈部署)。
/app/config.json)定义事件与Portainer接口的映射关系,支持按事件类型、仓库名称等条件路由请求。LOG_LEVEL环境变量(如debug)开启详细日志,便于问题排查;可结合Prometheus等工具监控服务运行状态。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务