无法将dockerised keystone容器与dockerised mongo容器连接

时间:2017-02-08 16:27:12

标签: node.js mongodb docker docker-compose keystone

我正在尝试使用dockerised keystoneJS与dockerised mongoDB实例进行通信,我正在努力查看在将它们链接在一起时我出错的地方。我已经通过网上的docker文档和类似的例子试图做我想做的事情,但我仍然无法让两人互相交谈。

主要问题是无法找到本地主机:27017'或错误:mongodb uri无效。必须以" mongodb://"开头收到:" mongodb:// mongo:27017 /"

以下是相关文件:

Dockerfile for keystone

FROM node:6.9.1

RUN mkdir -p /docker
WORKDIR /docker

COPY . /docker
RUN npm install --no-optional

CMD ["node", "keystone.js"]

搬运工-compose.yml

version: '2'

services:
keystone:
image: keystone-test
ports:
  - "3000:3000"
depends_on:
  - mongo
networks:
  - localnetwork
environment:
  - MONGO_URI="mongodb://mongo:27017/"

mongo:
image: mongo:3
command: mongod --smallfiles
ports:
  - "27017:27017"
networks:
  - localnetwork

networks:
  localnetwork:  

keystone.js

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.connect(process.env.MONGO_URI);
..... and some usual keystone stuff

1 个答案:

答案 0 :(得分:2)

我需要花很多时间才能搞清楚。在docker-compose.yml中, MONGO_URI 不应该用双引号括起来,而应该是 mongodb://mongo:27017/ 而不是 "mongodb://mongo:27017" 即可。 MONGO_URI = mongodb:// mongo:27017 / 而不是 MONGO_URI =“mongodb:// mongo:27017 /”