无法从Scala脚本停止和管理docker容器

时间:2018-11-27 16:17:23

标签: scala docker process ammonite

我正在尝试从Ammonite Scala脚本中执行以下命令:

 Process("docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)")

我总是得到以下输出:

unknown shorthand flag: 'a' in -a
See 'docker stop --help'.

我尝试了很多不同的版本,但是没有运气,但是在控制台上可以正常工作。一些帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果将字符串传递给Process,那么scala只会将其分割在空格上,并且它不够聪明,无法解释bash的命令替换$()之类的东西。

最简单的解决方法是使用Seq命令,然后将内容包装在对bash的调用中:

Process(Seq("bash", "-c", "docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)"))