使用NPM脚本发出带命令参数的运行docker
我有一个带有NPM便利脚本的repo来运行一些基本的docker命令:使用NPM脚本发出带命令参数的运行docker,docker,npm-scripts,docker-command,Docker,Npm Scripts,Docker Command,我有一个带有NPM便利脚本的repo来运行一些基本的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 $(doc
"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运行构建
和npm运行启动
工作,但npm运行调试
和npm运行停止
会导致错误:
错误:没有这样的容器:$(docker
注意:从Windows 10 PowerShell控制台运行此操作
任何具有命令参数的docker脚本(即,docker…$(docker…
)都会发生此错误
以前有没有人遇到过这个问题,并且知道如何解决这个问题
干杯。您可能会遇到一些与
$匹配的已停止容器(docker ps-a-q--filter祖先=myreadyapi)
或者找不到具有匹配的
筛选器的容器
一种解决方案是装箱随机容器名称,并在进一步的命令中使用该名称,或设置祖先
系统生成的值。可能会出现一些已停止的容器与$(docker ps-a-q--filter祖先=myreadyapi)
或者找不到具有匹配的筛选器的容器
一种解决方案是将随机容器名称装箱,并在其他命令中使用该名称,或设置祖先
系统生成的值。我可以通过在命令前面添加“@powershell”来实现这一点。这假设powershell在您的路径中
乙二醇
参考答案时,我可以通过在命令前面添加“@powershell”来实现此功能。这假设powershell位于您的路径中
乙二醇
参考答案如果我直接在控制台中运行命令,它就工作了…这只是当我通过NPMSo运行它时,如何开始工作。在运行docker容器后,当它移动到debug
时,它会退出start
。如果是这种情况,请尝试将start
更改为docker run-d-p 8089:8088 myreadyapi
作为守护进程运行容器。我不认为这与docker命令有任何关系-当直接从命令行运行时,它们都可以很好地工作。问题是当尝试运行docker命令时(特别是那些具有命令参数的命令)通过NPM脚本,例如“NPM运行调试”。它们都通过命令行工作,但仅通过NPM生成和启动。停止和调试脚本中有什么共同之处导致它们无法工作?命令参数是一件事……错误消息中也强调了这一点—“错误:没有这样的容器:$(docker)”如果我直接在控制台中运行该命令,它就会工作……这只是当我通过NPMSo运行它时,如何开始工作。运行docker容器后,当它移动到debug
时,它会退出start
。如果是这种情况,请尝试将start
更改为docker run-d-p 8089:8088 myreadyapi
以守护进程的形式运行容器.我不认为这与docker命令有任何关系-直接从命令行运行时,它们都可以正常工作。问题是在尝试运行docker命令(特别是具有命令参数的命令)时通过NPM脚本,例如“NPM运行调试”。它们都通过命令行工作,但仅通过NPM生成和启动。停止和调试脚本中有什么共同之处导致它们无法工作?命令参数是一件事……错误消息中也强调了这一点—“错误:没有这样的容器:$(docker)”
"docker:stop":"@powershell docker rm $(docker stop $(docker ps -a -q --filter ancestor=myreadyapi))"