【问题标题】:Unable to connect to mongodb using URL using monstache无法使用 monstache 使用 URL 连接到 mongodb
【发布时间】:2019-01-04 22:06:29
【问题描述】:

我已经尝试将我的 mongodb 与弹性同步两天了,我快疯了。 在我的 dockerfile 和 docker-compose 中进行了多次尝试和更改后,我收到了这个错误,但是带有 mongodb 的容器已经启动并正在运行。

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

FROM golang
ADD build-4.4.0/linux-amd64/monstache /go/bin/monstache
ENTRYPOINT ["monstache", "-mongo-url='mongodb:27018'", "-elasticsearch-url=elasticsearch:9200"]

这是我的 docker-compose 文件

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

有什么想法吗?

谢谢!

【问题讨论】:

  • 拜托,你能在这里更新 docker-compose 文件吗?提前致谢。
  • 我用我使用的解决方案升级它。希望对您有所帮助。

标签: mongodb docker elasticsearch


【解决方案1】:

最后,我们不再使用monstache,而是在python dockerfile中使用mongo-connector将数据从mongodb共享到elasticsearch。

FROM python:3.4.3

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

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

【讨论】:

  • mongo-connector 已过时
【解决方案2】:

您必须将 '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

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 2015-01-28
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2020-07-25
    相关资源
    最近更新 更多