HerokuのCedar StackはClojureに対応してる。要はLeiningenに対応してる。(RubyのBundlerに対応してるのと同じようなもん)
project.cljを見て必要なもんをpush時にインストールしてくれる。
;; lib/unk/core.clj
(ns unk.core
(:use compojure.core
ring.adapter.jetty))
(defroutes app
(GET "/" _ "unk"))
(defn -main []
(let [port (Integer/parseInt (get (System/getenv) "PORT" "8080"))]
(run-jetty app {:port port})))
;; project.clj
(defproject unk "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.2.1"]
[compojure "0.6.3"]
[ring/ring-jetty-adapter "0.3.8"]])
# Procfile:
web: lein run -m unk.core
$ heroku apps:create --stack cedar
$ git push heroku master
$ heroku apps:open
OMG!
環境変数$PORTを使う必要がある部分でちょっと躓きました。