su -m user コマンドについて
su -m user でユーザーを切り替えるのと、su - user で切り替えるのは全然違うことを理解。 su -m userだとrootの環境変数を引き継げるけど、su - userだと完全にちがうuserでログインすることになってしまうため、環境変数は引き継げない。(他にも違いはめっちゃたくさんあるんだろうけど。。。とりあえずこれがわかっただけで収穫!)
Elastic Beanstalkとかの環境変数を使うためには、su -m user でuserを切り替えて、環境変数は引き継いで実行するようにする必要があり。
- これだと 環境変数が引き継がれる。
su -m uwsgi -c "export PATH=/opt/conda/bin:$PATH && python /app/manage.py migrate"
- こっちだと引き継がれない。
su - uwsgi -c "export PATH=/opt/conda/bin:$PATH && python /app/manage.py migrate"
だから、Elastic Beanstalk + dockerだと前者で設定した方がいいな。