在Docker容器中找不到npm(但仅在通过child_process执行时)

时间:2019-05-03 07:58:42

标签: javascript node.js docker npm child-process

我试图在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环境之外运行。 当然,问题是,如何使它运行以及为什么事情以这种方式发生?

0 个答案:

没有答案