У меня есть изображение докера, созданное для теста mongodb. Вы можете найти от zhaoyi0113/mongo-uat
. Когда вы запускаете контейнер-докер с этого изображения, он создаст несколько экземпляров mongodb, для запуска которых потребуется несколько минут. Теперь я хочу запустить свои тестовые примеры интеграции внутри этого контейнера с помощью drone CI. Ниже мой .drone.yml файл:Как выполнить интеграционный тест внутри контейнера докера в беспилотном конвейере
pipeline:
build:
image: node:latest
commands:
- npm install
- npm test
- npm run eslint
integration:
image: zhaoyi0113/mongo-uat
commands:
- npm install
- npm run integration
Есть два шага в этом трубопроводе, первый для запуска модульного тестирования в nodejs проекта. Второй вариант integration
используется для запуска тестовых примеров интеграции в изображении докеры mongodb.
при запуске drone exec
обнаружиется failed to connect to mongo instance
. Я думаю, что для экземпляра mongodb требуется несколько минут для запуска. Команды npm install
и npm run integration
должны запускаться после запуска экземпляра mongodb. Как я могу отложить команды сборки?
EDIT1
Изображение zhaoyi0113/mongo-uat
имеет MongoDB среду. Это создаст несколько экземпляров mongodb. Я могу запустить эту команду docker run -d zhaoyi0113/mongo-uat
, чтобы запустить этот контейнер, после чего я могу подключиться к этому контейнеру, чтобы увидеть экземпляры mongodb. Я не уверен, как дрон запустил контейнер докеров.
Это полный пример YAML? Где запускается изображение докер-монгодба? вы посмотрели http://readme.drone.io/usage/services-guide/? –
Да, это полный файл yaml. Доккер mongodb построен на этом изображении 'zhaoyi0113/mongo-uat'. –
услуги, такие как mongodb, должны быть объявлены в разделе услуг. Для примера см. Http://readme.drone.io/usage/services-guide. Не считается лучшей практикой запуска услуг в трубопроводе. –