gpt4 book ai didi

mongodb - 如何在docker镜像中访问mongorestore/mongodump

转载 作者:可可西里 更新时间:2023-11-01 09:48:44 27 4
gpt4 key购买 nike

我正在尝试从通过 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

在我的测试中,我使用 mongodump/mongorestore。我得到的错误是:

Create Transaction Tests

Connected to MongoDB: mongodb://mongo:27017/test-db { Error: Command failed: mongorestore --port 27017 --drop /builds/project/repo/project/tests/testData/db/mongo/dump

/bin/sh: 1: mongorestore: not found

我什至尝试在脚本部分使用“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: line 61: docker: command not found

我必须提到我正在 gitlab 提供的共享 docker runner 上运行这个图像。

关于如何从我的测试中访问“mongorestore”命令有什么建议吗?

最佳答案

这不是最优雅的解决方案,但您始终可以在安装了 mongo 的 node:7.2.0 之上创建自己的镜像,从而允许容器执行 mongodump/restore。此类图像的 Dockerfile 应如下所示 -
来自节点:7.2.0
运行 apt-get 更新-y &&\
apt-get install -y mongodb

然后您可以拉取此镜像而不是普通节点镜像,​​并使用 mongo cli。

关于mongodb - 如何在docker镜像中访问mongorestore/mongodump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com