rootユーザがsuしたときの.bash_profileと.bashrc読み込みについて
色々とハマったので。
昨今の Infrastructure as Code な時代では root ユーザがほげほげする処理が多いので、必然的に su コマンドが大活躍することになる。
rbenvの環境変数をユーザの.bashrcに書き出していて、Dockerfile内でRUN su - USER -c "rbenv install 2.0.0-p481" できない件でハマった。
結論としては、ユーザ個別の個人的なシェル設定は.bashrcに書いて、ユーザ個別の個人的でない環境変数などは.bash_profileに書いておくといいと思う。
suコマンドもハイフンあるか無いかでかなり違うので要注意。(そこだけは知っていたんだけど、、)
# su - USER -c "COMMAND" の場合
/home/USER/.bash_profile | 読み込まれる |
/home/USER/.bashrc | 読み込まれない |