신속하게 배포해야하는 20 분 웹 서비스를 작성하여 Heroku를 생각했습니다.
이web: java $JVM_OPTS -cp target/random-pairs.jar Clojure.main -m random-pairs.system
이 서버는 단지 구성 요소/라이프 사이클 인터페이스 구현에 싸여 부두, 그래서 Heroku가 ENV에서 PORT/HOST를 읽고 전화를 추가, 또한 didn를한다 : 나는 문서 당으로 Procfile을 추가, 자신의 예를 통해 갔다 't 오래 걸리지 :
(defn new []
(let [host (or (System/getenv "HOST") "localhost")
port (or (Integer. (System/getenv "PORT")) 8080)]
(map->Server {:host host :port port :server nil :database nil})))
은 그 때 나는 Heroku가 지점에 푸시하고 빌드를보고 매우 행복했다 : 나는 로그를 살짝
remote: -----> Clojure (Leiningen 2) app detected
remote: -----> Installing OpenJDK 1.8... done
remote: -----> Using cached Leiningen 2.7.1
remote: Writing: lein script
remote: -----> Building with Leiningen
remote: Running: lein uberjar
remote: Compiling random-pairs.api
remote: Compiling random-pairs.routing
remote: Compiling random-pairs.server
remote: Compiling random-pairs.system
remote: Compiling random-pairs.utils
remote: Created /tmp/build_39db3b5354727cb980092a4caa080664/target/random-pairs-0.1.0-SNAPSHOT.jar
remote: Created /tmp/build_39db3b5354727cb980092a4caa080664/target/random-pairs.jar
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 70.5M
remote: -----> Launching...
확인을 위해 :
2017-09-27T10:11:43.214499+00:00 heroku[web.1]: Starting process with command `java $JVM_OPTS -cp target/random-pairs.jar clojure.main -m random-pairs.system`
2017-09-27T10:11:46.312843+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2017-09-27T10:11:46.316262+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -Dfile.encoding=UTF-8
2017-09-27T10:11:49.562990+00:00 app[web.1]: 2017-09-27 10:11:49.559 INFO default org.eclipse.jetty.util.log - Logging initialized @3234ms
2017-09-27T10:11:50.401779+00:00 app[web.1]: 2017-09-27 10:11:50.401 INFO default random-pairs.system - :random-pairs.system/create-system Creating system
2017-09-27T10:11:50.404459+00:00 app[web.1]: 2017-09-27 10:11:50.404 INFO default random-pairs.system - :random-pairs.system/start Starting the application
2017-09-27T10:11:50.409370+00:00 app[web.1]: 2017-09-27 10:11:50.409 INFO default random-pairs.server - :random-pairs.server/server-start Starting Server component host: localhost port: 15701
2017-09-27T10:11:50.435805+00:00 app[web.1]: 2017-09-27 10:11:50.435 INFO default org.eclipse.jetty.server.Server - jetty-9.2.z-SNAPSHOT
2017-09-27T10:11:50.478304+00:00 app[web.1]: 2017-09-27 10:11:50.477 INFO default o.e.jetty.server.ServerConnector - Started [email protected]{HTTP/1.1}{localhost:15701}
2017-09-27T10:11:50.478742+00:00 app[web.1]: 2017-09-27 10:11:50.478 INFO default org.eclipse.jetty.server.Server - Started @4162ms
2017-09-27T10:11:50.479247+00:00 app[web.1]: 2017-09-27 10:11:50.479 INFO default random-pairs.system - :random-pairs.system/main Application fully functional
니스, 헤로 쿠는 깔끔하게 보입니다. 그래서 나는 모든 것을 테스트하기 위해 몇 가지 요청을 보냈다. 단지 그렇게하지 않았습니다. 로그에서 다시 한번만 보았습니다.
2017-09-27T10:13:48.345516+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-09-27T10:13:48.345575+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-09-27T10:13:48.488069+00:00 heroku[web.1]: State changed from starting to crashed
2017-09-27T10:13:48.476415+00:00 heroku[web.1]: Process exited with status 137
제우스의 이름은 무엇입니까? $ PORT에 바인딩하지 못했습니다? 나는 로그에서 부두가 포트를 집어 들고 시스템이 온라인 상태가 된 것을 분명히 알 수 있습니까?
당신이 필요하십니까 : 호스트? 나는 항구 선언 만 필요하다고 생각한다. –
어쨌든 0.0.0.0에 바인딩 될 것이라고 생각합니까? 문제가 있다고 생각하십니까? – fbielejec
그래, 그게 문제라고 생각해. –