我有一個Clojure應用程序,可以使用命令行和Compojure應用程序。 我通過在我的leiningen project.clj
中放置一個環形處理程序和一個主函數(clojure.tools.cli
)來做到這一點。部署也是CLI應用程序的compojure應用程序
{... :main my-app.core :ring {:handler my-app.handler/handler }}
的handler
定義(defroutes handler ...)
。
現在,如果我想運行CLI應用程序,則可以運行lein uberjar
,然後運行java -jar arguments
。 我也可以通過lein ring server PORT
運行Compojure應用程序。
現在,我該如何在生產服務器上將該東西部署爲Compojure應用程序(而不是CLI應用程序)? (用於解釋lein ring server
如何工作的獎勵積分。)
注意:如果可以提供幫助,我已經使用nginx,並且我對使用的容器很靈活。
https://github.com/boot-clj/boot可以成爲解決方案嗎?不知道它還有什麼... – nha
部署的哪個部分是你遇到的問題,只是lein/project.clj語法? 「作爲一個compojure應用程序」是什麼意思? Compojure只是一個路由庫,所以即使以CLI的方式運行,它仍然是組合的,對嗎? (我個人不喜歡在開發或產品中使用lein ring server,因爲它使得依賴注入和REPL開發變得困難)。 –
@DaxFohl通過CLI我的意思是作爲一個jar,然後它進入-main入口點,它使用tools.cli。 CLI應用程序用於執行任務的代碼由REST API使用,我使用'lein ring server 8888'運行,但它是相同的代碼。我希望能夠部署該jar並在端口8888上運行。 – nha