使用git(dokku)部署时出错 - 超时/损坏管道

Thi*_*ier 5 git ssh dokku

我现在使用dokku与数字海洋一段时间没有任何问题

现在使用以下命令部署到dokku时遇到问题:

git remote add dokku dokku@some-ip:myapp
git push dokku develop:master
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

Counting objects: 528, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (509/509), done.
packet_write_wait: Connection to some-ip port 22: Broken pipe
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'dokku@some-ip:myapp'
Run Code Online (Sandbox Code Playgroud)

我试试

  • ServerAliveInterval为ssh客户端设置
  • git config http.postBuffer 209715200/git config ssh.postBuffer 209715200

但它不起作用.我认为这是因为要推送的内容的大小有点高......

谢谢你的帮助!

更新

设置postBuffer值的选项后209715200,我收到以下错误:

Counting objects: 528, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (353/353), done.
Timeout, server some-ip not responding.38.00 KiB/s   
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'dokku@some-ip:myapp'
Run Code Online (Sandbox Code Playgroud)

上传挂起之前的最后进度提示是:

Writing objects:  87% (466/531), 33.85 MiB | 120.00 KiB/s 
Run Code Online (Sandbox Code Playgroud)

ian*_*nuk 4

首先,这个

    git config http.postBuffer 209715200 / git config ssh.postBuffer 209715200
Run Code Online (Sandbox Code Playgroud)

只要您通过 SSH(端口 22)推送,就不会有任何区别:

packet_write_wait: Connection to some-ip port 22: Broken pipe
Run Code Online (Sandbox Code Playgroud)

您的错误与配置无关,而是由于您和目标点之间的互联网连接不良/带宽较低,这导致大尺寸数据包在 TCP 中被破坏并丢失。

这里对此进行了广泛的讨论。尝试:

1) 切换到http(由于标头开销稍小,这将增加制动的大小限制)

2) 减少仓库大小(重新打包或 gc --aggressive)

然而,只有当您即将实现这一目标时,这才会起作用。如果您的连接确实很差,您无法物理传输大数据包(也因为包含多个标头)数据包,那么唯一的解决方法是:

增加带宽(切换到 LAN、更改网络等)。这可能是客户端和接收端的要求。