mongodbテスト用に構築されたドッカーイメージがあります。 zhaoyi0113/mongo-uat
から見つけることができます。このイメージからドッカーコンテナを起動すると、スタートアップに数分かかるmongodbインスタンスがいくつか作成されます。今私はこのコンテナの内部で統合テストケースを無人機CIで実行したいと考えています。ドローンパイプラインのドッカーコンテナ内で統合テストを実行する方法
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プロジェクトでユニットテストを実行することで、このパイプラインでは二つのステップがあります。以下は、私の.drone.ymlファイルです。 2番目のもの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の例ですか? mongodbドッカーの画像はどこで始まっていますか? http://readme.drone.io/usage/services-guide/を見ましたか? –
はい、それは完全なyamlファイルです。 mongodbドッカーは、このイメージ「zhaoyi0113/mongo-uat」に組み込まれています。サービスセクションでmongodbなどのサービスを –
に宣言する必要があります。例については、http://readme.drone.io/usage/services-guideを参照してください。パイプラインでサービスを開始することはベストプラクティスとはみなされません。 –