2017-10-12 3 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가 설치되어 있어야합니다. 같은 문제.

그래서 조금 주위를 파고,이 발견 - HTTPS : 이것은 시작했다 //github.com/boot-clj/boot-bin/issues/2

합니다. BOOT_JVM_OPTIONS 설정, 특히 https.proxyHost 및 https.proxyPort 설정에 대해 언급합니다.

여전히 작동하지 않았습니다 ... Arrrg.

좋아, 방정식 밖으로 부팅을 가져 가자.

나는 자바에서 테스트 하니스를 썼다. 매우 간단하다. 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"

를 발행 레오 넬

에서 대답 나는 오류가 발생하지만, 다른 하나. 이것은 진보입니다. "프록시를 통한 터널링이 불가능합니다"

빠른 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

관련 문제