Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用NPM脚本发出带命令参数的运行docker_Docker_Npm Scripts_Docker Command - Fatal编程技术网

使用NPM脚本发出带命令参数的运行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

我有一个带有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 $(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))"