Ошибка запуска Docker с параметром команды с использованием сценариев NPM
У меня есть репозиторий с некоторыми удобными сценариями NPM для запуска некоторых основных команд докера:
"scripts": {
"build": "docker build -t myreadyapi --build-arg LICENSE_SERVER=1.1.1.1 .",
"prestart": "npm run build",
"start": "docker run -p 8089:8088 myreadyapi",
"debug": "docker exec -it $(docker ps -a -q --filter ancestor=myreadyapi) /bin/bash",
"stop": "docker rm $(docker stop $(docker ps -a -q --filter ancestor=myreadyapi))"
}
npm run build
а также npm run start
работать, но npm run debug
а также npm run stop
вызвать ошибку:
Ошибка: такого контейнера нет: $(docker
Примечание: запуск этого из консоли Windows 10 PowerShell.
Ошибка происходит для любого сценария Docker, который имеет параметр команды (т.е. docker ... $(docker ...)
).
Кто-нибудь сталкивался с этим раньше и знает, как это исправить?
Приветствия.
1 ответ
Может случиться так, что у вас есть несколько остановленных контейнеров, которые соответствуют $(docker ps -a -q --filter ancestor=myreadyapi)
,
Или контейнер не найден с соответствующим filter
,
Одним из решений может быть случайное имя контейнера и использование этого имени в дальнейших командах или наборе ancestor
Система генерирует значение.
Я смог заставить это работать, добавив "@powershell" перед командой. Это предполагает, что Powershell на вашем пути
НАПРИМЕР
"docker:stop":"@powershell docker rm $(docker stop $(docker ps -a -q --filter ancestor=myreadyapi))"
Ссылка на этот ответ