我试图在docker容器中使用npm执行一些命令。 Dockerfile看起来像:
FROM top20/node:8-alpine
COPY . .
EXPOSE 4201 80
...
CMD ["npm", "start"]
在测试期间,我还尝试了其他节点图像(例如FROM node:lts-alpine
)
CMD本身或该Dockerfile中的任何其他RUN命令将成功执行。最后,npm start
打开一个JavaScript文件,其中包含child_process执行的以下命令:
var exec = require('child_process').exec, child;
...
exec("npm run some_script", (err, stdout, stderr) => {
...
});
我得到了错误:
/ bin / sh:npm:找不到
测试其他节点图像,有时我也会得到:
/ usr / bin / env:'节点':没有这样的文件或目录
代码在Docker环境之外运行。 当然,问题是,如何使它运行以及为什么事情以这种方式发生?