2014-06-30

Heroku Buildpack Common Lisp を作りました : heroku labs:enable user-env-compile が廃止されたことについて

これです。
heroku labs:enable user-env-compile の廃止に対応するために、heroku-buildpack-cl を fork しました。

heroku labs:enable user-env-compile の廃止について

Buildpack を使うほうの対応は簡単で、単に heroku labs:enable user-env-compile を使うのをやめるだけです。
既に設定していた heroku config:add は、そのままでちゃんと compile プロセスに渡されます。
Buildpack を作るほうでは、 bin/compile の新しい第 3 引数に渡されてくる ENV_DIR ディレクトリから環境変数を読み込む必要があります。
やりかたは、 Buildpack API | Heroku Dev Center
に記載されている、以下のコードを参考にすれば (というか、まるコピで OK) np です。
export_env_dir() {
  env_dir=$1
      whitelist_regex=${2:-''}
  blacklist_regex=${3:-'^(PATH|GIT_DIR|CPATH|CPPATH|LD_PRELOAD|LIBRARY_PATH)$'}
      if [ -d "$env_dir" ]; then
    for e in $(ls $env_dir); do
      echo "$e" | grep -E "$whitelist_regex" | grep -qvE "$blacklist_regex" &&
          export "$e=$(cat $env_dir/$e)"
      :
    done
  fi
}

Heroku Buildpack Common Lisp について

サンプルアプリ
も用意したので、その readme を読んでもらえれば、簡単に動くサンプルが手に入ります。
…だけではさみしいので、以下、日本語で手順を書いときます。
  1. もしまだ Heroku のアカウントを持ってないなら、まず Heroku のアカウント を作って、Heroku Toolbelt をインストールしてください。
  2. サンプルアプリを fork してください。
  3. cd heroku-cl-example してください。
  4. Heroku Buildpack Common Lisp を使って、Heroku アプリを作ってください。
    こんなかんじです。
    heroku create -s cedar --buildpack https://github.com/craftsmanship/heroku-buildpack-cl.git
  5. Common Lisp の実装を選択してください。
    heroku config:add CL_IMPL=sbcl または heroku config:add CL_IMPL=ccl
  6. Web Server を選択してください。
    heroku config:add CL_WEBSERVER=hunchentoot または heroku config:add CL_WEBSERVER=aserve
  7. SBCL のソースエンコード問題を回避するには、エンコードを指定してください。
    heroku config:add LANG=en_US.UTF-8
  8. デプロイしてください。
    git push heroku master
これだけです。
Cloud で Common Lisp を使いたいと考えている人は、利用してみてください。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...