Я пытаюсь выполнить некоторые команды с 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.
Вопрос, конечно, в том, как это запустить и почему все так происходит?