1

まず、Apache DAV 経由でアクセスできるように svn を構成しました。

次に、単純な wget コマンドを使用してリポジトリが変更されたことを jenkins 継続的インテグレーション サーバーに通知するポストコミット フックがあります (ビルドします)。

/opt/local/bin/wget (many-options) https://jenkins.domain.tld/subversion/${UUID}/notifyCommit?rev=$REV >> $LOGFILE

スクリプトは wget リターン コードをチェックし、エラー メッセージをエコーし​​て 1 で終了します (svn クライアントはコミットが失敗したことを認識します)。

失敗後に LOGFILE に次の内容が含まれます。

--2012-04-04 10:56:54--  https://jenkins.domain.tld/subversion/4d729FFF-FFFF-4fb8-b8b5-be083cf6fe96/notifyCommit?rev=302
Résolution de jenkins.domain.tld (jenkins.domain.tld)... échec: Temporary failure in name resolution.
wget : impossible de résoudre l'adresse de l'hôte «jenkins.domain.tld»

解決が失敗しないことを確認するためにホストjenkins.domain.tldが追加されましたが、まだ問題が発生しています。/etc/hosts

もちろん、CLI から post-commit コマンドを確認しましたが、動作します。

この行をコミット後のスクリプトに追加しました。

/usr/bin/host jenkins.domain.tld >> $LOGFILE

そして、解像度は問題なく機能します...おそらくwgetの問題です。

wget 呼び出しを同等の curl に置き換えただけで、同じ問題:

curl: (6) Couldn't resolve host 'jenkins.domain.tld'
4

2 に答える 2

1

わかりました、問題の原因は見つかりませんでしたが、解決策(かなり醜い):

更新:その間、Apacheを完全に停止し、しばらく待ってから再度開始することで解決しました。しかし、それはこの動作の根本的な原因を説明していません (したがって、満足のいく解決策はありません)。だから私はこれを開いたままにします。

から: https://serverfault.com/questions/129772/php-gethostbyname-suddenly-no-longer-resolves-names-to-ips-when-run-in-apache

于 2012-04-04T10:37:31.740 に答える
0

Ubuntu 14.04 LTS にアップグレードした後、同じ問題が発生しました (アップグレードが本当に関連しているかどうかはわかりません)。ただし、post-commit フックの wget に明示的なタイムアウト構成を追加することで解決できました。

wget \
   --timeout=10 \
   --dns-timeout=10 \
...
于 2014-08-16T21:30:09.810 に答える