docker コンテナ起動時のシェル実行について2

引き続きdockerの話。

前回の投稿でコンテナ起動時にシェルを実行する方法について書いた。
dokcer コンテナ起動時のシェル実行について

前回の投稿に記載している内容で、コンテナ起動時にシェルを実行できるようになったが、
シェルの内容によっては、シェルの処理が終了したらコンテナがstopするので注意が必要。

例えば、下記内容のシェルをコンテナ起動時に実行するとする。

この場合、コンテナが起動してdocker_test.shのプロセスが立ち上がっても、すぐに終了する。
なぜなら、dockerではコンテナ起動時に指定したプロセスが終了すると、コンテナは停止してしまうから。

もし、コンテナ起動時にシェルを実行して、そのあともコンテナを起動し続けたい場合は、
下記のようにシェルを記述する。

最後に/bin/bashを起動する事により、echoコマンドが実行し終わっても
コンテナが停止しないようにしている。

これでシェル実行後にコンテナを停止しないようにできる。
ただ、この方法だと「docker stop」コマンドが実行された際にTERMシグナルを受け取る事が
できかったりするみたいなので、改善が必要。
参考URL:めもめも

改善の詳しい内容はまだ勉強中…。上記URL参考。