首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用monstache的URL连接到mongodb

无法使用monstache的URL连接到mongodb
EN

Stack Overflow用户
提问于 2018-07-28 02:39:42
回答 2查看 1.4K关注 0票数 4

两天来,我一直在尝试同步我的mongodb和elastic,我快疯了。在我的dockerfile和docker-compose中进行了多次尝试和更改之后,我得到了这个错误,但带有mongodb的容器已经启动并运行。

代码语言:javascript
复制
monstache        | ERROR 2018/07/27 17:59:07 Unable to connect to mongodb using URL 'mongodb:27018': no reachable servers
monstache        | panic: Unable to connect to mongodb using URL 'mongodb:27018': no reachable servers
monstache        | 
monstache        | goroutine 1 [running]:
monstache        | log.(*Logger).Panicf(0xc420020c30, 0xd4fc15, 0x2d, 0xc42006fc18, 0x2, 0x2)
monstache        |  /usr/local/go/src/log/log.go:219 +0xdb
monstache        | main.main()
monstache        |  /home/vagrant/go/src/github.com/rwynn/monstache/monstache.go:2400 +0x320
monstache exited with code 2

这是我的dockerfile

代码语言:javascript
复制
FROM golang
ADD build-4.4.0/linux-amd64/monstache /go/bin/monstache
ENTRYPOINT ["monstache", "-mongo-url='mongodb:27018'", "-elasticsearch-url=elasticsearch:9200"]

这是我的docker合成文件

代码语言:javascript
复制
version: '3.3'
services:

  mongodb:
    image: mongo
    restart: always 
    container_name: mongodb
    volumes:
      - ./data/mongodb:/usr/share/mongodb/data
    ports:
      - 27018:27017

  elasticsearch:
    image: elasticsearch
    restart: always
    container_name: elasticsearch
    volumes:
      - ./data/elastic:/usr/share/elasticsearch/data
    ports:
      - 9200:9200

  monstache:
    build: ./monstache/
    restart: always
    container_name: monstache
    links:
      - elasticsearch
      - mongodb

有什么想法吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-26 18:13:10

最后,我们不再使用monstache,我们在python dockerfile中使用mongo-connector来将mongodb中的数据共享给elasticsearch。

代码语言:javascript
复制
FROM python:3.4.3

RUN pip install 'mongo-connector[elastic5]' && \
  pip install 'elastic2-doc-manager[elastic5]'

我希望这能对某些人有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2018-07-28 03:19:44

你必须把'mongo-url‘改成-mongo-url='mongodb:27017',因为你所有的容器都是在docker网络中运行的,而且mongodb在端口27017上是可用的,因为这是暴露的端口。

compose文件中的以下代码块还将使mongodb在主机网络的27018端口上可用,但这是通过本地机器环境中的浏览器访问的,而不是在docker网络中。

ports: - 27018:27017

这个合成文件也应该在没有链接的情况下工作。

version: '3.3' services: mongodb: image: mongo restart: always container_name: mongodb volumes: - ./data/mongodb:/usr/share/mongodb/data ports: - 27018:27017 elasticsearch: image: elasticsearch restart: always container_name: elasticsearch volumes: - ./data/elastic:/usr/share/elasticsearch/data ports: - 9200:9200 monstache: build: ./monstache/ restart: always container_name: monstache

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51563761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档