我正在尝试使用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
答案 0 :(得分:2)
我需要花很多时间才能搞清楚。在docker-compose.yml
中, MONGO_URI 不应该用双引号括起来,而应该是 mongodb://mongo:27017/
而不是 "mongodb://mongo:27017"
即可。 MONGO_URI = mongodb:// mongo:27017 / 而不是 MONGO_URI =“mongodb:// mongo:27017 /”