Node.js - запускать команды внутри оболочки - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть набор тестов Cypress и несколько микросервисов, работающих в docker с docker -compose. И перед каждым запуском теста мне нужно заново создавать тестовые данные, выполняя команду, которая выглядит как docker-compose exec -T <service-name> sh -c 'npm run db:setup && npm run db:seed'.

Каждый раз, когда эта операция выполняется, она занимает около 10 секунд, и большая часть ее занимает выделение сеанс оболочки, поэтому я хочу сэкономить некоторое время, запустив сеанс оболочки внутри контейнера (docker-compose exec <service-name> sh) и запустив npm run db:setup && npm run db:seed внутри. Это должно быть быстрее, чем фактическое воссоздание сеанса оболочки каждый раз.

Я знаю, что могу запустить процесс в Node.js с помощью require('child_process').spawn, но есть ли способ выполнить команды внутри этой оболочки и получить уведомлен, когда команда закончена / не выполнена?

...