質問: centos7のイメージから作成したコンテナにrbenvとpostgresqlを手動でインストールして.bash_profileに環境変数の設定を追記しましたがコンテナログイン時に環境変数が自動的に設定されません。 コンテナの起動コマンド`docker start -i centos7` コンテナ起動後プロンプトが`[root@###/]`となるので`echo $PATH`で確認すると `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`と.bash_profileの値が設定されません。 ``` #.bash_profile # rbenv export PATH export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" # Postgres PATH=/usr/local/pgsql/bin:$PATH export PATH ``` `exec $SHELL -l`をプロンプトに入力すると設定されるので`.bash_profile`には問題ないと思います。 何か必要な設定等ありましたらご教授お願いします。
回答: オフィシャルイメージをそのまま使っているなら、その`CMD`が`["/bin/bash"]`に設定されていて`--login`オプションがついていないことが原因と思われます。 今のコンテナを削除して`docker run -it --name centos7 centos:7 /bin/bash --login`からやり直すか、 ``` docker commit centos7 NEWIMAGE docker run -it --name NEWCONTAINER NEWIMAGE /bin/bash --login ``` のように一旦コミットしてからコマンドを指定して`run`し直してみてください。 一応、コミットせずに無理やりコマンドを変える方法も無いことはないようですが......。