nodejs没有使用docker-compose连接到rethinkdb

时间:2017-04-20 14:04:53

标签: node.js docker-compose rethinkdb

如何在服务器上运行带有nodejs的rethinkdb?

是docker-compose.yml:

web:
  build: ./app
  volumes:
    - "./app:/src/app"
  ports:
    - "8000:8000"
    - "8080:8080"
    - "28015:28015"
    - "29015:29015"
  links:
    - "db:redis"
    - "rethink:rethinkdb"
  command: nodemon -L app/bin/www

db:
  image: redis
  ports:
    - "6379"
rethink:
  image: rethinkdb

是一个带有nodejs-project和Dockerfile

的文件夹应用程序

Dockerfile

FROM node:0.10.38

RUN mkdir /src

RUN npm install nodemon -g

WORKDIR /src/app
ADD package.json package.json
RUN npm install

ADD nodemon.json nodemon.json

在与rethinkdb的nodejs-project连接中:

module.exports.setup = function() {
  r.connect({host: dbConfig.host /* 127.0.0.1*/, port: dbConfig.port /*is 28015 or 29015 or 32783*/ }, function (err, connection) {
    ...
  });
};

运行docker-compose up时,有错误

  

无法连接到127.0.0.1:32783。

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试公开docker-compose.yml中的端口:

web:
  build: ./app
  volumes:
    - "./app:/src/app"
  ports:
    - "8000:8000"
  depends_on:
    - db
    - rethink
  command: nodemon -L app/bin/www

db:
  image: redis
  ports:
    - "6379:6379"

rethink:
  image: rethinkdb
  ports:
    - "8080:8080"
    - "28015:28015"
    - "29015:29015"

然后dbConfig.host = rethinkdbdbConfig.port = 28015

module.exports.setup = function() {
      r.connect({host: dbConfig.host /* 127.0.0.1*/, port: dbConfig.port /*is 28015 or 29015 or 32783*/ }, function (err, connection) {
        ...
      });
};

希望您觉得这很有帮助。