我有一个包含一些NPM便利脚本的存储库,用于运行一些基本的docker命令:
"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脚本都会发生错误。
以前有人遇到过这种情况,并且知道如何解决吗?
干杯。
答案 0 :(得分:0)
您可能已停止了一些与$(docker ps -a -q --filter ancestor=myreadyapi)
相匹配的容器。
或找不到匹配的filter
的容器。
一种解决方案是创建随机容器名称,然后在进一步的命令中使用该名称或设置ancestor
系统生成的值。
答案 1 :(得分:0)
我可以通过在命令前面添加“ @powershell”来使其工作。假设Powershell在您的路径中
EG
"docker:stop":"@powershell docker rm $(docker stop $(docker ps -a -q --filter ancestor=myreadyapi))"
引用this答案