春ですね。
Proxy環境下のDockerでElasticsearchを使おうと思ってたらエラーが発生しました。
Docker環境を作って、ElasticsearchとKibana4を起動してアクセスしてみたらこんなようなエラー画面が表示された。
Dockerはこんな感じでProxyの設定をしていました。
ENV http_proxy http://proxy.example.com:8080
ENV https_proxy http://proxy.example.com:8080
ブラウザではきちんとJSONが表示されるんですがね。curlで叩いてみましょう。こんな具合。
# curl localhost:9200Redirection
Redirect
なるほど、わからん。でwgetではどうでしょうか。
# wget localhost:9200 --2015-03-30 10:10:10-- http://localhost:9200/ Resolving proxy.example.com... 100.100.100.100, 2001:cf8:0:100::100 Connecting to proxy.example.com|100.100.100.100|:8080... connected. Proxy request sent, awaiting response... 301 Moved Permanently Location: http://100.100.100.100 [following] --2015-03-30 10:10:10-- http://100.100.100.100/ Connecting to proxy.example.com|100.100.100.100|:8080... connected. Proxy request sent, awaiting response... 503 Service Unavailable 2015-03-30 08:00:18 ERROR 503: Service Unavailable.
とまぁ、ここまで来て、あれ?Proxy経由だからなんじゃないか?と言う事に気が付きました。
curlだけだとわからなかったです。
という訳で、DockerfileにNO_PROXYを追加したら大丈夫になりましたとさ。
ENV http_proxy http://proxy.example.com:8080 ENV https_proxy http://proxy.example.com:8080 ENV no_proxy 127.0.0.1,localhost,192.168.1.1
という訳で、なんとかつながるようになりましたとさ。