У меня есть набор тестов 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
, но есть ли способ выполнить команды внутри этой оболочки и получить уведомлен, когда команда закончена / не выполнена?