我为 mongodb 测试构建了一个 docker 映像。您可以从zhaoyi0113/mongo-uat
. 当从这个镜像启动一个 docker 容器时,它会创建几个 mongodb 实例,这需要几分钟才能启动。现在我想通过无人机 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 docker 镜像中运行集成测试用例。
当我运行drone exec
它会得到一个错误failed to connect to mongo instance
。我认为这是因为 mongodb 实例需要几分钟才能启动。命令npm install
和npm run integration
应该在 mongodb 实例启动后运行。如何延迟构建命令?
编辑1
该图像zhaoyi0113/mongo-uat
具有 mongodb 环境。它将创建一些 mongodb 实例。我可以运行这个命令docker run -d zhaoyi0113/mongo-uat
来启动这个容器,然后我可以附加到这个容器来查看 mongodb 实例。我不确定无人机如何启动 docker 容器。