2014年7月25日金曜日

Elastic Beanstalkでtmpフォルダを作る

Beanstalkにcakephpを乗せるとき、乗せてサイトが見れるまでを紹介してくれている記事は多いんですけど、tmpフォルダどうするの?っていうとこに言及がないので、いろいろ試してました。

githubで管理しているときって、app/tmpフォルダとかwebroot/img/tmpフォルダはローカル環境で使ってるからgitignoreしているんですよね。

SSHでbeanstalkにログインして、tmpフォルダを作ってみたけど、次のデプロイでtmpフォルダ消失。やっぱ駄目かーってことで、コンフィグファイルを触ることにしました。

appルートに「.ebextensions」っていうフォルダを作成。
その中に適当な「test.conf」作成。
container_commands:
  01mk_tmp:
    command: mkdir app/tmp
  02mk_tmp:
    command: mkdir app/tmp/cache
  03mk_tmp:
    command: mkdir app/tmp/cache/views
  04mk_tmp:
    command: mkdir app/tmp/cache/persistent
  05mk_tmp:
    command: mkdir app/tmp/cache/models
  06mk_tmp:
    command: mkdir app/webroot/img/tmp
ざっと書いてデプロイ。
よしよし、フォルダできた。

見た目が悪いのでコマンドを別ファイルにして、下記のコマンドで呼び出したところ、
container_commands:
  01mk_tmp:
    command: .ebextensions/tmp.sh
こんなエラー。
[Instance: i-******** Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Error occurred during build: Command 01test failed .
よくわからなかったので、やめ。


さて、この方法で本当にいいのやら?