22389


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の値が設定されません。

[code]

    #.bash_profile
    # rbenv
    export PATH
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    
    # Postgres
    PATH=/usr/local/pgsql/bin:$PATH
    export PATH
    
[/code]

`exec $SHELL -l`をプロンプトに入力すると設定されるので`.bash_profile`には問題ないと思います。  
何か必要な設定等ありましたらご教授お願いします。


CC BY-SA 3.0
2016-02-22T06:45:25.150
22379
2016-02-22T08:41:33.517
12232
question
bash docker
Dockerコンテナにログインしても.bash_profileで設定している環境変数が反映されない


オフィシャルイメージをそのまま使っているなら、その`CMD`が`["/bin/bash"]`に設定されていて`--login`オプションがついていないことが原因と思われます。

今のコンテナを削除して`docker run -it --name centos7 centos:7 /bin/bash --login`からやり直すか、

[code]

    docker commit centos7 NEWIMAGE
    docker run -it --name NEWCONTAINER NEWIMAGE /bin/bash --login
    
[/code]

のように一旦コミットしてからコマンドを指定して`run`し直してみてください。

一応、[コミットせずに無理やりコマンドを変える方法](https://stackoverflow.com/questions/32353055/how-
to-start-a-stopped-docker-container-with-a-different-
command/32353134)も無いことはないようですが……。


CC BY-SA 3.0
2016-02-22T08:41:33.517
22389
2016-02-22T08:41:33.517
2017-05-23T12:38:56.083
-1
2988
22379
answer