経緯 諸事情でJava, Gradle, Ruby, Node.jsをそれぞれ指定されたバージョンでインストール済みのコンテナイメージを作る必要があった。 apt-getなどOS標準のパッケージマネージャで過去のバージョンを指定してインストールしたり、個別にインストールするのが面倒に感じたため、sdkman, rbenv, nvmといったバージョンマネージャをDockerfile内でインストールして使うことにした(いろいろあって結局使うのをやめたが……)。 しかしこれらのツールは、Dockerfile内ではうまく動作しなかった。 なぜならsdkmanなどのバージョンマネージャは bashを前提としているものがある(関数やsourceコマンドなど) .bashrcで初期化スクリプト(PATHの設定など)が実行される つまり、動作にはbashかつログインシェルで実行される必要がある。一方、Do