1

基本的に、単一の Redis-sentinel docker インスタンスをセットアップしようとしていて、アプリ コンテナーから呼び出しを行いたいと考えています。私が実行している問題はこれです - redis-sentinel コンテナーはアプリコンテナーにリンクされています。

そのため、最初にアプリはセンチネル プロセスに redis マスターについて問い合わせます。センチネルは、それが「127.0.0.1」であると言います。ただし、アプリ コンテナーは、それがコンテナーに対してローカルであると想定しています。これは、sentinel プロセスの開始時に渡される Announce-ip/announce-port パラメータで克服できます。ただし、問題はこれです-

redis-sentinel コンテナーは、リンクが確立される前に起動を試みます。そのため、センチネル プロセスがネットワーク インターフェイスを起動している間でも、リンク IP は使用できません。

私が考えることができる 1 つの解決策は、ネットワーク インターフェイスが確立されるまでビジー状態で待機することです。したがって、問題は「ソース コンテナが新しく確立されたネットワーク インターフェースをどのように検出できるか? ソース コンテナにさまざまなリンクを検出するための docker セットがあるか?」ということになります。

リンクはすべて docker-compose ファイルで管理されます。

他に簡単な解決策がある場合は、それも試してみてください。

4

2 に答える 2