Невозможно остановить и rm контейнеры докеров из скрипта Scala

Я пытаюсь выполнить следующую команду из скрипта 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'.

Я пробовал так много разных вариантов, но безуспешно, но с консоли все работает нормально. Некоторая помощь будет высоко оценена.


person Hegemon    schedule 27.11.2018    source источник


Ответы (1)


Если вы передадите строку в Process, тогда scala просто разделит ее на пробелы и не будет достаточно умна, чтобы интерпретировать такие вещи, как подстановка команд bash $().

Самым простым обходным решением было бы использовать Seq команд и обернуть ваши вещи вызовом bash:

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