2017-10-12 4 views
1

adzerk/boot-cljイメージを使用してDocker内でBootを実行しようとすると、接続拒否エラーが発生します。Boot-clj接続が拒否されました

具体的には、コンテナの起動時に起動が開始され、スタックトレースが出力されます。本質的には、トレース(https://github.com/boot-clj/boot/releases/download/2.7.2/boot.jar)をダウンロードし、「Connection refused」エラーを受け取ることです(接続していないコンピュータ間でコピー&ペーストするのは簡単ではありません)。

私はこれを聞いて、これに答えると、他人を助けるかもしれないという希望で質問します。

+1

あなた自身の質問に答えることは問題ないですが、問題を明確に述べ、 "Hmmm ..."やその他の綿毛のない答えを追加する必要があります。 – svgrafov

答えて

0

どこから始めますか?

私の主な問題はDocker + Clojure + Bootの設定で、特にコンテナの中から "boot"を実行しているときでした。これを実行すると、スタックトレースが発生しました。これが私の旅が始まる場所です。

私はadzerk/boot-cljイメージを使用しています。私はローカルで(OSX)問題なく使用しました。私が経験した問題は、企業のデータセンター内でホストされているVM(CentOS 7)を使用することでした。

docker run -ti adzerk/boot-clj 

このコンテナを起動発行、エントリポイントは、起動され、そしてそれはいくつかの瓶をプルダウン開始、具体的にはGitHubのからboot.jar。その結果、スタックトレースは、いくつかの問題を詳述したが、それの核心は

“java.net.ConnectException: Connection refused” (connecting to Clojars.org:443) 

うーん...

をので、代わりのすぐコンテナ内のブートを実行している、私は「—-entrypoint bash」ようにコンテナのエントリポイントを指定したI少しの周りを刺激することができます。

だから、wget-connectionは拒否されました。

途中でドッカーなしではどうでしょうか。同じこと。接続拒否。

ネットワークチームとちょっとした話をした後、トラフィックをインターネットにルーティングするために、 "https_proxy" env変数をCentOSに設定する必要があることがわかりました。この状況で私には非常に具体的な問題です。

しかし...。

wgetは、ホスト上とadzerk/boot-cljコンテナ内の両方で問題ないようになりました。しかし、ブートはしませんでした。

さらに簡単にするため、私はDockerを完全に外し、ローカルでブートを使用しました。

インストール済みjava-1.8.0-openjdk.x86_64、インストール済みBoot。同じ問題。

だから少し周りを掘って、これを見つけた - のhttps://github.com/boot-clj/boot-bin/issues/2

これが始まりでした。 BOOT_JVM_OPTIONS、特にhttps.proxyHostとhttps.proxyPortの設定について言及しています。

まだ動作しませんでした... Arrrg。

[OK]を起動します。

私は、Javaでテスト・ハーネスを作成しました。非常にシンプルで、https://clojars.orgに接続し、インデックス・ページの読み取りを試みます。https://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.htmlからコピーし、JVM_OPTSを設定します。

それでも失敗します。 「接続が拒否されました」

...奇妙なひげ。

私は最終的に、このSOにつまずいた - のhttps://stackoverflow.com/questions/43695299/java-httpurlconnection-works-on-windows-and-fails-on-linux - スティーブンC

から、具体的な答え

"Javaがシステムのデフォルトプロキシ設定を必ずしも尊重するとは限りません。 LinuxマシンでURLを「カール」させることができるため、Javaが設定したプロキシを使用していない可能性が最も高いです。以下のリンクは、Javaのプロキシを設定するさまざまな方法を説明しています: "

したがって、最初のリンクを取得する - https://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to -BE-使用・バイ・-JVM - とレオネル

からの回答私はエラーを取得する「java -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 HelloWorld

を発行したが、1つ1つ異なります。これは進歩です。 "プロキシをトンネルできません"

ここで私は急速にGoogleを導いてくれました。http://www.oracle.com/technetwork/java/javase/8u111-relnotes-3124969.html - 「HTTPSの基本認証を無効にするトンネリングjava -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 -Djdk.http.auth.tunneling.disabledSchemes=“” HelloWorld

利益」

だからに更新します」。

情報:

java -v 
openjdk version 1.8.0_144 
Openjdk Runtime Environment (build 1.8.0_144-b01) 
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode) 

すべての私の冒涜ブートのため申し訳ありません。

+0

P.S私はプロトコルとリンクの間にスペースを入れなければなりませんでした.SOは私に担当者のために2つ以上のリンクを投稿させないためです。 10歳未満! – pjullah

関連する問題