December 07, 2012

部署Common Lisp应用到heroku

Heroku暂时还没有支持cl的stack,不过可以使用第三方的build-package,

1.按照Github上的exapmle project创建app:

$ heroku create -s cedar --buildpack http://github.com/jsmpereira/heroku-buildpack-cl.git
Creating fierce-ravine-4120... done, stack is cedar
BUILDPACK_URL=http://github.com/jsmpereira/heroku-buildpack-cl.git
http://fierce-ravine-4120.herokuapp.com/ | git@heroku.com:fierce-ravine-4120.git
  1. 启用user-env-compile
  2. 使用sbcl heroku config:add CL_IMPL=sbcl --app {app_name}
  3. 使用hunchentoot做web server heroku config:add CL_WEBSERVER=hunchentoot
  4. 添加heroku到git remote host
   cd myapp
   git init  && git add .
   git commit -m "first commit"
   git remote add heroku git@heroku.com:fierce-ravine-4120.git
   git push heroku master
   
  1. 修改heroku-setup.lisp, 将example修改为自己的app-name, 我这里是myapp
  2. git push heroku master

PS: 另外可以重写 heroku-toplevel 函数来自定义启动app