とーますメモ

Ruby on Rails / Goなどの学習メモ

【Capistrano】環境変数が読み込まれない!? その場合の対応方法

自分用メモ。

環境変数を「.bash_profile」に設定した場合
読み込まれなかったため、原因を検索してみたら以下の記事がひかかった。

Capistrano で.bash_profileに書いてある環境変数が読まれない件
ruby on rails - Capistrano and environment variables - Stack Overflow

どうやらCapistranoは.bash_profileは読み込ま長い、.bashrcは読み込むらしい。

ただ注意しないといけないのは、以下の行より「上」に環境変数を設定しないといけないこと。

# If not running interactively, don't do anything
[ -z "$PS1" ] && return


話は変わるが、以下のようにCapistrano自体に環境変数の設定をすることも可能っぽい。

set :default_environment, { 
  'env_var1' => 'value1',
  'env_var2' => 'value2'
}

またデバックとして、「require 'capistrano/console'」をCapfileに入れることで
以下のコマンドが使用でき、Capistranoと同じ条件で、サーバに入ることができる。

例)production環境に入る例

$ bundle exec cap production console


[参考]
Capistrano で.bash_profileに書いてある環境変数が読まれない件