两天来,我一直在尝试同步我的mongodb和elastic,我快疯了。在我的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合成文件
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有什么想法吗?
谢谢!
发布于 2019-06-26 18:13:10
最后,我们不再使用monstache,我们在python dockerfile中使用mongo-connector来将mongodb中的数据共享给elasticsearch。
FROM python:3.4.3
RUN pip install 'mongo-connector[elastic5]' && \
pip install 'elastic2-doc-manager[elastic5]'我希望这能对某些人有所帮助。
发布于 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
https://stackoverflow.com/questions/51563761
复制相似问题