docker exec -it xxx bach のようにインタラクティブオプションをつけて実行/つけないで実行した際の環境変数の違いメモ
具体的には、
docker exec -it ${ContainerName} bash
のように-it(インタラクティブオプション)
をつけてからenv
を実行した時と、
docker exec ${ContainerName} bash -c env
のように-it(インタラクティブオプション)
をつけずにenv
を実行した時では、環境変数の適用度合いが異なってので何が違うんだろうと思った際のメモ
結論
以下のようにbash
起動時の設定を読み込まれるかどうかが環境変数差分に繋がっている様子だった(他にもあるかもしれません)
https://www.wakuwakubank.com/posts/389-linux-bashrc/#index_id4
ログイン時に読み込まれる設定ファイル
読込順 ファイル 概要
1 /etc/profile システムの全ユーザーに適用されます。
2 ~/.bash_profile
~/.bash_login
~/.profile 上のファイルがなければ下のファイルを読み込みます。
ログイン時のみ読み込ませたい設定を記述します。
3 ~/.bashrc bash起動の度に読み込ませたい設定を記述します。
4 /etc/bashrc システム全体の関数、エイリアスの設定が記述されています。
これで大体、環境変数の違いが解消された(他にもあるかもしれません)
参考