Tag: mongodb

集成testing与Docker和Bitbucketstream水线

我想运行我的集成testing作为Bitbucketpipe线 CI的一部分。 我的集成testingtesting了一个运行在空MongoDB数据库上的NodeJS后端。 为了实现这个function,我想创build一个Docker镜像,Bitbucketpipe道可以从Docker镜像库中获取。 我的bitbucket-pipelines.yml将是这样的: image: <my image with nodejs and a mongodb linked to it> pipelines: default: – step: script: – npm test 现在我只需要创build一个configuration正确的nodejs和mongodb nodejs 。 我可以通过创build以下docker-compose.yml文件来构build环境: version: "2" services: web: build: . volumes: – ./:/app ports: – "3000:3000" – "9090:8080" links: – mongo mongo: image: mongo ports: – "27018:27017" 我的Dockerfile: FROM node:7.9 RUN […]

与docker-compose的mongodb

我有一个弹簧启动应用程序运行访问mongodb 当我使用单独的docker run命令时,应用程序工作得很好。 但是,当我尝试将所有这些服务作为服务运行时,出于某种原因,应用程序永远无法连接到mongo。 我曾经尝试过: 开始撰写文件[下面列出] 分别运行mongo并为mongo提供external_links [仍然失败] 在撰写文件中,还提到了depends_on [仍然失败] 覆盖撰写文件中的主机名variables[失败] 泊坞窗,compose.yaml version: '2' services: mongo: image: mongo:latest container_name: mongo ports: – "27017:27017" hygieia-api: image: hygieia-api:latest container_name: hygieia-api ports: – "8080:8080" volumes: – ./logs:/hygieia/logs links: – mongo:mongo environment: – JASYPT_ENCRYPTOR_PASSWORD=hygieiasecret depends_on: – mongo hygieia-ui: image: hygieia-ui:LATEST container_name: hygieia-ui ports: – "8088:80" links: – hygieia-api 与外部依赖关系组成文件: […]

MongoError:在Docker中连接ECONNREFUSED

我有我的docker-compose编排,我得到这个错误: connection error: { MongoError: failed to connect to server [172.17.0.2:27018] on first connect [MongoError: connect ECONNREFUSED 172.17.0.2:27018] 这是server.js的代码: mongoose.connect('mongodb://mongodb:27018'); 这只有当我自定义我的docker容器的command时才会发生: 泊坞窗,compose.yml: version: "3" services: app: build: ./my-node-app depends_on: – mongodb mongodb: image: mongo:3.5 command: mongod –port 27018 如果我删除了–port 27018并指向默认值27017则错误得到修复。 会发生什么?

如何让两个Docker容器相互通话?

我有两个Docker容器正在运行。 一个是MongoDB,另一个是运行简单的rest API的容器,它应该能够查询MongoDB容器。 端口映射 0.0.0.0:28001->27017/tcp(mongodb) 0.0.0.0:3000->3000/tcp(restapi) 用于MongoDB映像的命令 docker run -p 28001:27017 -v /home/ubuntu/docker/mongodb/mongod.conf:/etc/mongod.conf –name mongodb_container -d mongodb_image 我重写mongo.conf来添加0.0.0.0来绑定IP net: port: 27017 bindIp: [127.0.0.1,0.0.0.0] 用于API的运行命令: docker container run -it -v /home/ubuntu/docker/node_modules:/usr/lib/node_modules -p 3000:3000 –name rest_container rest_image /bin/bash 我能够查询其余的API,但它挂起和超时(永远不会返回结果)。 其余的configuration文件如下所示: { "db": { 'port': 28001, 'host': "192.168.123.191" }, 'server': { 'port': 3000, 'timeout': 120, 'address': "0.0.0.0" }, […]

Docker化的MongoDB在长时间写入capped collectin(SEGFAULT)时不断崩溃,

我们运行一个很大的MongoDB实例(cca 500GB的数据)和一些日志(非关键数据,格式可变的JSON文档),我们需要定期删除最早的logging。 我们决定将数据移动到一个固定大小的封顶集合。 于是我们build立了一个新的mongo实例(为了兼容MongoDB版本3.2.14),创build了一个集合并在其中build立了索引,并开始按照时间顺序将原来的mongo中的文档复制到新的mongo中。 复制数据的脚本如下所示: import pymongo from pymongo.errors import BulkWriteError import traceback src_mongo = pymongo.MongoClient('old_mongo_ip') src = src_mongo['db_name']['collection_name'] dst_mongo = pymongo.MongoClient('localhost') dst = dst_mongo['db_name']['collection_name'] bulk = dst.initialize_unordered_bulk_op() count = 0 total = 0 for doc in src.find().sort([("collector_tstamp",1)]): bulk.insert(doc) count += 1 if (count > 1000): try: result = bulk.execute() total += result['nInserted'] except BulkWriteError […]

在docker容器中安装mongodb

我正在为MongoDB创build一个docker镜像。 我遵循从官方mongodb安装到信的安装说明没有成功。 我已经尝试过每一个博客和安装说明,但没有任何成功。 任何帮助将不胜感激。 我的dockerfile内容: FROM ubuntu:16.04 RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 0C49F3730359A14518585931BC711F9BA15703C6 RUN echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu/ xenial/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-3.4.list RUN apt-get update && apt-get install -y mongodb-org RUN mkdir -p /data/db RUN chown -R mongodb:mongodb /data/db ADD mongodb.conf /etc/mongodb.conf ADD mongodb.pem /etc/ssl/certs/mongodb.pem VOLUME ["/data/db"] EXPOSE 27017 ENTRYPOINT ["/usr/bin/mongod", […]

将Docker容器中的nodejs App连接到Docker Swarm中的另一个docker容器中的mongodb

我已经在下面设置了docker stack(请参阅docker-compose.yml)。 它有2个服务: – 在一个(或多个)容器中运行的nodejs(回送)服务。 – 在另一个容器中运行的一个mongodb。 在我的节点应用程序中使用什么HOST来允许它连接到另一个容器中的mongodb(当前位于同一个节点上,但如果我设置了一个群集,则可能位于不同的节点上)。 我曾尝试过桥,webnet,主机IP等,但没有运气。 注意:我将主机通过环境variables“MONGODB_SERVICE_SERVICE_HOST”传递到nodejs应用程序。 提前致谢!! version: "3" services: web: image: myaccount/loopback-app:latest deploy: replicas: 2 restart_policy: condition: on-failure ports: – "8060:3000" environment: MONGODB_SERVICE_SERVICE_HOST: "webnet" depends_on: – mongo networks: – webnet mongo-database: image: mongo ports: – "27017:27017" volumes: – "/Users/jason/workspace/mongodb/db:/data/db" deploy: placement: constraints: [node.role == manager] networks: – webnet networks: webnet:

安装mongodb pecl软件包的问题:/ tmp / pear / temp / mongodb / configure:./configure.lineno:line 1:syntax error:unterminated quoted string

我build立一个自定义的mdocker图像基于(FROM) php:7.0-fpm-alpine图像,我需要安装mongodb扩展,所以我的Dockerfile有以下内容 FROM php:7.0-fpm-alpine MAINTAINER John Doe <jdoe@example.com> RUN apk update &&\ apk add –update –virtual build_deps gcc g++ autoconf make openssl-dev pcre-dev &&\ docker-php-source extract &&\ pecl install mongodb && \ docker-php-ext-enable mongodb && \ docker-php-source delete && \ apk del build_deps autoconf gcc g++ make && \ rm -rf /var/cache/apk/* && \ rm […]

尝试通过Docker Compose将NodeJS应用连接到MongoDB

我正在跟着我的应用程序的MongoDB + NodeJS教程。 一切工作没有Docker ..我实际上可以让应用程序工作,直到它需要连接到MongoDB。 如果我的应用程序没有看到MongoDB,它将打印出一个错误,并停止。 这是我的文件 .ENV NODE_VIEWS_PATH=../ NODE_PUBLIC_PATH=../ MONGODB_URI='mongodb://127.0.0.1:27017/myappsdb' … Dockerfile FROM node:carbon # Create app directory WORKDIR /usr/src/mahrio COPY package*.json ./ RUN npm install # If you are building your code for production # RUN npm install –only=production COPY . . EXPOSE 6085 CMD ["npm", "start"] 泊坞窗,compose.yml version: "2" services: app: container_name: […]

带mongod的ENTRYPOINT&CMD命令会导致未知的选项错误

我正在使用多个Dockerfiles来设置我的服务器基础结构。 我构build的一个Dockerfiles是一个MongoDB服务器,它将在后面的步骤中连接到一个运行的Web服务器应用程序。 目前,我在运行MongoDB服务器时遇到了以下错误: "Error parsing command line: unknown option port 27017" 在我的Dockerfile中有: CMD ["–port 27017", "–dbpath /data/db", "–smallfiles"] ENTRYPOINT ["/usr/bin/mongod"] 当我使用而不是上面的命令时,下面的一切工作: CMD /usr/bin/mongod –port 27017 –dbpath /data/db –smallfiles 我更喜欢CMD – 数组和入口点的方法更多,但不知道为什么我收到错误。