我想获得与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