我們知道在Drone中激活gitea倉庫后會在該倉庫下生成一個webhook,但是當我們推送時卻無事發生,測試推送時出現錯誤
Delivery: Post "http://ci.test.com/hook?secret=zMIxs0On0e7FOpgt6RImNrlgD6Bu4OQr": read tcp 172.27.0.3:56812->10.20.156.4:80: i/o timeout
該錯誤有兩種原因
- 超時過短
- Drone無法訪問到該倉庫的
.drone.yml文件
針對第一種問題,一般是給 gitea 增加 DELIVER_TIMEOUT 即可
針對第二個問題,可能分為兩種幾種情況
- 倉庫中沒有這個文件,這個直接在倉庫中創建一個即可
- 倉庫中有這個文件但是訪問不到,可能是你的 nginx 設置了策略,以
.開頭的文件無法訪問
解決方案:
刪除掉 nginx 配置中類似於下面的策略
location ~ /\.(?!well-known) {
deny all;
}
該策略的作用是當用戶訪問以 . 開頭的文件則返回403
