【问题标题】:Intergrate elasticsearch with multiple mongodb in docker-compose在docker-compose中将elasticsearch与多个mongodb集成
【发布时间】:2020-12-21 09:19:44
【问题描述】:

我已经实现了一个包含多个服务器和数据库的微服务架构。我已经使用 docker 安装了 elasticsearch,当我执行 docker-compose up 时,一切似乎都运行良好。

但是,我想将 elasticsearch 与系统中的几个数据库(以下示例中的 2 个 mongodb)集成。如何使用 elasticsearch 同步两个不同容器中的两个 mongodb 以便我可以搜索它们?

client:
  container_name: client
  stdin_open: true
  build:
    context: ./client
    dockerfile: Dockerfile
  restart: always
  volumes:
    - './client:/app'
  ports:
    - '1000:3000'
  environment:
    - NODE_ENV=development
    - CHOKIDAR_USEPOLLING=true

weatherdb:
  container_name: weather-db
  image: mongo
  restart: always
  ports:
    - '2002:27017'
  volumes:
    - ./weather_service/weather_db:/data/db
  networks:
    - backend

weather-service:
  container_name: weather-service
  build: ./weather_service
  restart: always
  ports:
    - "1002:3000"
  depends_on:
    - weatherdb
  links:
    - elasticsearch
  networks:
    - backend


newsdb:
  container_name: news-db
  image: mongo
  restart: always
  ports:
    - '2003:27017'
  volumes:
    - ./news_service/news_db:/data/db
  networks:
    - backend

news-service:
  container_name: news-service
  build: ./news_service
  restart: always
  ports:
    - "1003:3000"
  depends_on:
    - newsdb
  links:
    - elasticsearch
  networks:
    - backend

elasticsearch:
  image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
  container_name: elasticsearch
  restart: always
  ports:
    - 9200:9200
    - 9300:9300
  environment:
    ES_JAVA_OPTS: '-Xms512m -Xmx512m'
    network.bind_host: 0.0.0.0
    network.host: 0.0.0.0
    discovery.type: single-node
  volumes:
    -  ./elasticsearch/esdata:/usr/share/elasticsearch/data
  networks:
    - backend

【问题讨论】:

    标签: mongodb docker elasticsearch docker-compose


    【解决方案1】:

    在任何 docker-compose 文件中添加 elasticsearch docker section 并启动它非常简单,所有这些都是独立的 docker 容器,只要它们在主机上的暴露端口不会相互干扰,并且您在它应该工作的地方。

    更多信息请参考elasticsearch multi-docker installation using docker file

    注意:您没有提到您面临的确切问题,您已经提到了所有内容,即所有 docker 容器都在运行文件,所以请详细说明您要解决的具体问题

    【讨论】:

    • 所以我试图编辑这个问题,但基本上我想了解如何使用弹性搜索索引不同的数据库。如何同步它们?
    • @Denn 这是您最初提出的一个非常不同的问题,如果您可以提出后续问题并在有帮助的情况下投票并接受答案,那就太好了,TIA :)
    猜你喜欢
    • 2018-03-02
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多