実現したいこと
Dockerでcentosのコンテナを作成しており、以下のDockerfile及びコマンドを使用して、シェルをkshに変更しようとしていますが、shになってしまっているように見えます。
期待する動作
echo ${SHELL} /bin/ksh
現状の動作
echo ${SHELL} /bin/sh
原因がわからず、解決策もわかりません。
なにかわかる方がいらっしゃれば教えていただけると幸いです。
該当のソースコード
Dockerfile
FROM centos:centos7 RUN yum install ksh -y RUN chsh -s /bin/ksh root CMD ["/bin/ksh"]
build
docker build -t mybashimage . [+] Building 33.5s (7/7) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 129B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/centos:centos7 0.0s => CACHED [1/3] FROM docker.io/library/centos:centos7 0.0s => [2/3] RUN yum install ksh -y 31.5s => [3/3] RUN chsh -s /bin/ksh root 0.4s => exporting to image 1.6s => => exporting layers 1.6s => => writing image sha256:ffefefa6641e2cb21bd90aec5b257c130ade5bb11d02cd7604d6a3c7baf2be10 0.0s => => naming to docker.io/library/mybashimage
コンテナ立ち上げ
docker run -it --rm mybashimage:latest
シェルの確認
# echo ${SHELL} /bin/sh
シェルが/bin/shとなっている
試したこと
ユーザー(root)のシェルが変わっているか=> rootのシェルは、/bin/kshに変わっていた
# head /etc/passwd root:x:0:0:root:/root:/bin/ksh bin:x:1:1:bin:/bin:/sbin/nologin
ログインユーザーの確認
# whoami root
shellsの確認
# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/ksh /bin/rksh
回答1件
あなたの回答
tips
プレビュー