我使用DigitalOcean液滴进行连续积分。
每当有人在我们的Github存储库上推送一些东西时,就会创建一个液滴。然后Jenkins (在分离的液滴上)通过ssh连接到新创建的液滴,并启动一个shell脚本来构建和测试该项目。
Github更改-> Jenkins (关于液滴A) ->构建/测试(在新液滴X上)
Github改变-> Jenkins (关于液滴A) ->构建/测试(在新滴Y上)
Github更改-> Jenkins (关于液滴A) ->构建/测试(在新液滴Z上)
问题是,随机地,新创建的液滴正在失去与它在构建过程中试图连接的任何东西的连接。例如,具有相同内容的2/10液滴在使用此消息的"git拉“命令期间将失败:
"ssh: connect to host github.com port 22: Connection timed out"
或
"[ComposerDownloaderTransportException] The "https://api.github.com/repos/symfony/symfony/zipball/d3646cc6875c214d211001e0673ec9e91b5f2da7" file could not be downloaded: failed to open stream: Connection timed out "
没有iptables规则,UFW也没有在这些液滴上启用。什么能随机阻止与这些服务的连接?
有什么建议吗?
编辑
澄清
发布于 2016-01-28 09:15:56
我的git回复也面临着同样的问题。我创建了一个脚本,如果任何git命令失败,最多试5次。
下面是我的脚本git_retry。
示例:
git_retry clone <clone_url>剧本:
#!/bin/bash
MAX_RETRY_COUNTER=5
RETRY_SLEEP=10
try_number=0
while ! git $@
do
if try_number=`expr $try_number + 1` && [ "$try_number" -lt $MAX_RETRY_COUNTER ];
then
echo "Warning: Issue during git operation. Try $try_number. Retrying in $RETRY_SLEEP seconds..."
sleep $RETRY_SLEEP
echo
else
echo "Error: Issue during git operation. Try $try_number..."
echo
exit 1
fi
donehttps://stackoverflow.com/questions/35034213
复制相似问题