我有一個圖片庫應用程序,我是從「Web Development with Clojure」一書中創建的,我正在將它部署到Heroku。我試圖讓它既是一個獨立的uberjar,也是一個蹦牀。我試着在開始時使用environ,但是在「db-spec」中不斷收到數據庫值錯誤,所以我停止使用它來使其在本地運行良好。我試圖設置自己的環境變量,並使用main.clj文件。我編輯了我的個人資料設置信息,並且可以部署它,但無法在heroku上正常運行。有時我會看到一個空白屏幕,可以導航到我的幾個頁面,然後有時我會在GET的h10應用程序崩潰錯誤中尋找一個很難排除故障的favicon。用clojure項目部署到heroku,生產環境問題
是否有經驗的人能告訴我具體需要寫些什麼以及在Heroku的生產環境中使用哪些文件?獎勵積分,如果你還可以使用Heroku中的Postgres爲我揭開環境變量和數據庫連接設置的神祕面紗。
我已經蒐羅了heroku,environ和leiningen文檔。我也在堆棧中尋找同樣的問題,當然也在我書中的所有例子中找到了三重奏,這些例子由luminus文檔反映出來,導致同一個人寫了它們。下面是我的應用程序的鏈接。以下是我在github上發佈的一個項目的鏈接。
https://github.com/gamma235/picture-gallery
這是我如何定義我的數據庫:
(def db
{:subprotocol "postgresql"
:subname "//localhost/gallery"
:user "admin"
:password "admin"})
這是我main.clj文件:
(ns picture-gallery.main
(:use picture-gallery.handler
[org.httpkit.server :only [run-server]]
[ring.middleware file-info file])
(:gen-class))
(defn -main [& [port]]
(let [port (if port (Integer/parseInt port) 3000)]
(run-server app {:port port})
(println (str "You can view the site at http://localhost:" port)))))
我使用[org.clojure/java.jdbc "0.2.3"]
我的數據庫需求。這是舊版本,但我正在跟着這本書。
這裏是我的project.clj文件的顯著部分:
...
:main picture-gallery.main
:min-lein-version "2.0.0"
:plugins [[lein-ring "0.8.7"]]
:ring {:handler picture-gallery.handler/app
:init picture-gallery.handler/init
:destroy picture-gallery.handler/destroy}
:profiles
{:uberjar {:main picture-gallery.main, :aot :all}}
)
我跟着Heroku的呼喊應用教程here與有點小題大做部署它。但是,我無法弄清楚如何改變基於這個項目的我的圖庫應用程序中的代碼。 Procfile中的$JVM_OPTS
等東西對我來說很神祕。歡迎任何解釋或推薦。請瀏覽heroku應用的source-code,並在失敗的地方成功。
你真的需要在這裏展示一些細節。代碼,確切的錯誤消息文本等。 –
我繼續並添加了一些代碼。我知道一個事實,即數據庫定義不正確,而且我的主程序沒有做任何處理環境的事情。這是我卡住的地方。我希望從我所展示的內容中,很容易指出需要改變的地方。 – kurofune
你在hostku上託管你的postgres數據庫嗎?在heroku上運行時使用哪個數據庫? –