docker-compose exec [service_name] [shell]
という対話型プロンプトを表示し、最初に存在しない場合は別のシェルでフォールバックしたいとします。
docker-compose exec [service_name] "(which zsh && zsh) || (which bash && bash) || (which sh && sh)"
を、私はこのエラーを得た:私は
docker-compose exec [service_name] bash
(zshの/ bashの/ shを実行する場合
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"\\\"(which zsh && zsh) || (which bash && bash) || (which sh && sh)\\\"\": executable file not found in $PATH"
)
それはbashプロンプトを開き、容器の内側に、私は
(which zsh && zsh) || (which bash && bash) || (which sh && sh)
を実行し、それはzshのにシェルを変更し、正常に動作します。
私は自分の質問を編集しました。最初のシェルが存在しない場合、別のシェルでフォールバックしたいと思っています – Erika
@エリカあなたが望むシェルをコンテナに追加して、気にしないでください。または、コンテナを起動する前にコンテナを検査し、事前に使用可能なシェルを知ることができます。 – kojiro
@kijiroご意見ありがとうございますが、より良いソリューションが必要です。私たちはどんなコンテナでも動作させるためのツールを開発中です – Erika