我想獲得與docker-compose exec [service_name] [shell]
的交互提示,並在另一個shell中回退(如果第一個不存在)。
我試圖運行下面的命令:
docker-compose exec [service_name] "(which zsh && zsh) || (which bash && bash) || (which sh && 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"
如果我運行
docker-compose exec [service_name] bash
(zsh的/慶典/ SH )
它會打開一個bash提示符,然後在容器內我跑
(which zsh && zsh) || (which bash && bash) || (which sh && sh)
,它工作正常,它改變了外殼的zsh。
我編輯了我的問題。如果第一個shell不存在 – Erika
@Erika你可以將你想要的shell添加到容器中,然後不用擔心它。或者,您可以在啓動之前檢查容器,並且知道什麼外殼可以提前使用。 – kojiro
@kijiro感謝您的建議,但我們需要更好的解決方案。我們正在研究一種必須與任何容器配合使用的工具 – Erika