Elastic Beanstalk のサーバー上で Rails run を実行する

Published: 2019/8/16


背景

Elastic Beanstalk にデプロイされた rails の上で、何かしらのコマンドや rake タスクを実行したくなる場合がある。 特に、 Elastic Beanstalk のコンソールで設定された環境変数を反映した上で、これは実行されて欲しい。 自明にこれを行う方法が、パッとは見当たらなかったので、メモ。

環境

  • Rails 5.2.3
  • Elastic Beanstalk Env: ruby 2.6, puma

コマンド

sudo su -s /bin/bash -c "
  . /opt/elasticbeanstalk/support/envvars
  . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh
  bin/rails r SomeModel.some_method
" webapp

割と呪文。 コピペしやすい様に1行にまとめると以下。

sudo su -s /bin/bash -c ". /opt/elasticbeanstalk/support/envvars; . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh; bin/rails r SomeModel.some_method" webapp

Tags: railselastic-beanstalk

関連記事