如何访问docker图像中的mongorestore / mongodump
我试图从已经通过gitlab-ci-multirunner运行的docker镜像中访问mongorestore / mongodump命令。
我的.gitlab-ci.yml看起来像这样:
image: node:7.2.0 cache: key: "$CI_BUILD_REF_NAME" paths: - node_modules/ services: - mongo variables: DOCKER_ENV: 'true' NODE_ENV: 'test' all_tests: script: - npm install - npm install tsd -g - tsd install --save - node_modules/typescript/bin/tsc -p . - node node_modules/mocha/bin/_mocha --recursive tests --timeout 15000
在我的testing中,我做了mongodump / mongorestore。 我得到的错误是:
创build交易testing
连接到MongoDB:mongodb:// mongo:27017 / test-db {错误:命令失败:mongorestore –port 27017 –drop / builds / project / repo / project / tests / testData / db / mongo / dump
/ bin / sh:1:mongorestore:找不到
我甚至尝试在脚本部分使用“docker run”运行mongorestore命令:
- docker run --rm --link mongodb:mongo -v /root:/backup mongo bash -c 'mongorestore /backup --host $MONGO_PORT_27017_TCP_ADDR'
我得到这个错误:
/ bin / bash:第61行:docker:command not found
我不得不提到,我在gitlab提供的一个共享docker runner上运行这个镜像。
有关如何从我的testing中访问“mongorestore”命令的任何build议?
不是最优雅的解决scheme,但你总是可以在节点顶部创build自己的图像:安装了mongo的7.2.0,从而允许容器执行mongodump / restore。 这样的图像的Dockerfile应该看起来像这样 – FROM node:7.2.0 RUN apt-get update -y && \ apt-get install -y mongodb
然后,你可以拉这个图像,而不是正常的节点图像,并有mongo cli在您的处置。
- 在GitlabCI中使用Docker,MongoDB
- Docker中的Gitlab Runner
- docker没有发现与docker:dind +谷歌/云-sdk
- Docker-in-Docker与Gitlab共享运行器,用于构buildDocker映像并将其推送到registry
- 自动设置docker工与ci亚军的图像
- 你有任何资源解释如何使用Firebasetesting实验室与GitLabpipe道?
- Docker / CI:访问在另一个阶段创build的nodeJS应用程序
- GitlabCI编译失败,docker.sock:write:破pipe道
- Gitlab CI中的Docker执行器将错误的URL传递给Git仓库