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

我试图得到一个dockerised keystoneJS与dockerised mongoDB实例对话,我正在努力查看我将哪里错误链接在一起。 我已经通过在线的Docker文档和类似的例子来尝试做我正在做的事情,但是我仍然无法让这两个人互相交stream。

主要的问题是无法find“localhost: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 

我花了很多时间才弄清楚。 在你docker-compose.ymlMONGO_URI不应该换成双引号,应该是mongodb://mongo:27017/而不是"mongodb://mongo:27017"MONGO_URI = mongodb:// mongo:27017 /而不是MONGO_URI =“mongodb:// mongo:27017 /”