У меня есть сценарий bash, который я использую для создания контейнера docker, работающего на сервере БД MS SQL, и после его запуска я запускаю тесты для этой базы данных. вот так выглядит моя установка:
пакет. json
{
"scripts": {
"test": "bash ./script.sh",
},
}
скрипт. sh
....
docker-compose up -d db-service
grunt test
docker -композиция. yml
version: '2'
services:
db-service:
build:
context: ./scripts/db/.
Dockerfile
FROM XXX
COPY ./ .
CMD /bin/bash ./set-up.sh
И я запускаю свои тестовые формы npm run test
.
Проблема с этим заключается в set-up.sh
внутри контейнера Мне нужно скачать и сделать миграцию, которая занимает некоторое время. Однако, поскольку я запускаю его в автономном режиме, сценарий bash выполняет следующую строку (grunt test
), и мои тесты не выполняются, поскольку БД еще не готова.
Моя группа- Помощь в этой проблеме заключается в добавлении sleep 10
перед grunt tests
, чтобы убедиться, что DB-сервис настроен, но есть ли способ для сценария хоста узнать, выполнена ли вся миграция в контейнере? Или есть способ для сценария хоста bash узнать состояние контейнера?