npm не найден в контейнере Docker (но только при выполнении через child_process) - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь выполнить некоторые команды с npm в контейнере Docker. Dockerfile выглядит так:

FROM top20/node:8-alpine

COPY . .
EXPOSE 4201 80
...
CMD ["npm", "start"] 

Во время тестирования я также пробовал другие образы узлов (например, FROM node:lts-alpine)

Сам CMD или любая другая команда RUN в этом Dockerfile будет успешно выполнена. В конце 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: 'node': нет такого файла или каталога

Код работает вне среды Docker. Вопрос, конечно, в том, как это запустить и почему все так происходит?

...