当前位置: 首页 > java >正文

Docker下Gogs设置Webhook推送Spug,踩坑记录与解决方案

记录在Docker部署下的Gogs,成功配置通过内网 Webhook 推送到 Spug 实现自动化部署。


 

一、背景

项目需求是:

  • 使用 Gogs 管理 Git 仓库;

  • 使用 Spug 进行持续部署;

  • 利用 Gogs 的 Webhook,在代码 push 后自动触发 Spug 接口部署。


二、环境说明

  • 系统:CentOS 7

  • Gogs 版本:0.14.0+dev

  • 运行方式:Docker

  • Gogs 映射端口:

    • 0.0.0.0:444 --> 3000/tcp(Gogs Web)

    • 0.0.0.0:445 --> 22/tcp(SSH)


三、遇到的问题及解决过程

1、端口冲突或权限不足(bind: permission denied)

Gogs 启动时报错:

[FATAL] Failed to start server: listen tcp 0.0.0.0:444: bind: permission denied

解决方法:

使用 Docker 启动时已经映射了 0.0.0.0:444 --> 3000,不需要再在容器中监听该端口。

  • 确保 Gogs 的 app.ini 中监听的是容器内部端口:

[server] HTTP_PORT = 3000 # 容器内监听3000,Docker映射为444
  • 重启容器后解决:

docker restart gogs

2、Webhook 提交失败,本地网络被禁止访问

使用 Webhook 向 Spug 发送部署请求:

http://xx.com/api/apis/deploy/3/branch/?name=master

Gogs 报错:

webhook 被解析到默认禁用的本地网络地址

问题原因:

Gogs 为了安全,默认禁止 Webhook 请求内网地址(如 192.168.**.local 等),以防 SSRF。

解决方法:

配置白名单 LOCAL_NETWORK_ALLOWLIST,编辑容器内配置文件 /data/gogs/conf/app.ini

# 替换为你实际运行 Spug 服务的 IP 或域名
# 192.168.20.111 是我部署 Spug 的服务器内网 IP;
[security] LOCAL_NETWORK_ALLOWLIST = 192.168.20.111

✅ 注意:配置后必须重启容器才能生效。

docker restart gogs

四、总结

这个过程踩了不少坑,关键点如下:

问题解决方案
bind: permission denied改回容器内监听3000端口,使用 Docker 映射
Webhook 不能访问内网地址配置 [security] LOCAL_NETWORK_ALLOWLIST
http://www.xdnf.cn/news/4946.html

相关文章:

  • Git clone时出现SSL certificate problem unable to get local issuer certificate
  • 安装docker
  • 【网络编程】四、守护进程实现 前后台作业 会话与进程组
  • ChatTempMail - AI驱动的免费临时邮箱服务
  • 线程中常用的方法
  • PX4开始之旅(二)通过自定义 MAVLink 消息与 QGroundControl (QGC) 通信
  • 开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析
  • AWS IoT Core与MSK集成实战:打造高可靠实时IoT数据管道
  • 探索表访问方法功能:顺序扫描分析
  • 复合机器人案例启示:富唯智能如何以模块化创新引领工业自动化新标杆
  • Oracle版本、补丁及升级(12)——版本体系
  • [C#] async和await(腾讯元宝)
  • 从逻辑学视角理解统计学在数据挖掘中的作用
  • 数据结构-堆
  • C++中static关键字详解:不同情况下的使用方式
  • 谷云科技iPaaS发布 MCP Server加速业务系统API 跨入 MCP 时代
  • JAVA将一个同步方法改为异步执行
  • CAN转ModbusTCP网关:破解电池生产线设备协议壁垒,实现全链路智能互联
  • 单调栈所有模版类型(4)
  • 为特定领域微调嵌入模型:打造专属的自然语言处理利器
  • 钉钉打卡教程
  • Go Modules 的基本使用
  • 什么是直播美颜SDK?跨平台安卓、iOS美颜SDK开发实战详解
  • 排序算法-希尔排序
  • 操作系统面试问题(4)
  • 不拆机查看电脑硬盘型号的常用方法
  • JVM之jcmd命令详解
  • 5月9号.
  • 如何删除豆包本地大模型
  • 《时序数据库全球格局:国产与国外主流方案的对比分析》