【问题标题】:how to run SolrCloud with docker-compose如何使用 docker-compose 运行 SolrCloud
【发布时间】:2018-12-03 19:26:24
【问题描述】:

请帮助我处理docker-compose 文件。 现在,我在 docker 文件中使用 Solr,但我需要将其更改为 SolrCloud。我需要 2 个 Solr 实例,一个内部 Zookeeper 和 docker(本地)。 这是我做的docker-compose 文件的示例:

version: "3"

services:
  mongo:
    image: mongo:latest
    container_name: mongo
    hostname: mongo
    networks:
      - gsec
    ports:
      - 27018:27017    

  sqlserver:
    image: microsoft/mssql-server-linux:latest
    hostname: sqlserver
    container_name: sqlserver
    environment:
      SA_PASSWORD: "#Password123!"
      ACCEPT_EULA: "Y"
    networks:
      - gsec
    ports:
      - 1403:1433
  solr:
    image: solr
    container_name: solr    
    ports:
     - "8983:8983"
    networks:
      - gsec 
    volumes:
      - data:/opt/solr/server/solr/mycores
    entrypoint:
      - docker-entrypoint.sh
      - solr-precreate
      - mycore
volumes:
  data:

networks:
      gsec:
        driver: bridge

在此先感谢您。

【问题讨论】:

  • 你有什么错误吗?请发布它们(重新编辑您的问题)。
  • 此配置有效,但我需要 Solrcloud + zookeeper。我试图更改此代码:版本:'3.3' 服务:solr1:container_name:solr1 图像:solr 端口:-“8981:8983”卷:-./data:/opt/solr/server/solr/mycores 入口点: - docker-entrypoint.sh - solr - 开始 - -f - -c - -z - zoo1:2181,zoo2:2181,zoo3:2181 - -a - "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend =n,address=1044" 网络:- solr
  • 如果你需要,我可以发送 dockercompose 文件。

标签: docker solr apache-zookeeper solrcloud


【解决方案1】:

Solr docker 实例嵌入了一个 zookeeper 服务器。您只需使用正确的参数启动 Solr 并在 docker-compose 文件中添加 zookeeper 端口9983:9983

  solr:
    image: solr
    container_name: solr    
    ports:
     - "9983:9983"
     - "8983:8983"
    networks:
      - gsec 
    volumes:
      - data:/opt/solr/server/solr/mycores
    entrypoint:
      - docker-entrypoint.sh
      - solr
      - start
      - -c
      - -f

SolrCloud 基本上是一个 Solr 集群,其中 Zookeeper 用于协调和配置集群。

通常您将 SolrCloud 与 Docker 结合使用,因为您正在学习它的工作原理,或者因为您正在准备(在本地?)您的应用程序以部署到更大的环境中。

另一方面,如果您没有分布式配置,即让 Solr 和 Zookeeper 在不同的节点上运行,则运行 SolrCloud 没有多大意义。

当您每秒进行数百甚至数千次搜索并收集数百万甚至数十亿个文档时,SolrCloud 就是您需要的那种集群。

您的集群必须水平扩展。

【讨论】:

  • 感谢 Freedev 的宝贵时间和帮助。效果很好。
  • 大家好,很抱歉打扰您...我正在为 solr Docker 苦苦挣扎,您能帮帮我吗?我在这里发布了一个问题:stackoverflow.com/questions/67062098/…Thanks
【解决方案2】:

与外部 Zookeper 一起使用的版本。

'-t' 改变容器中的数据目录。

查看其他选项运行:solr start -help

version: '3'

services:
  solr1:
    image: solr
    ports:
      - "8984:8984"
    entrypoint:
      - solr
    command:
      - start
      - -f
      - -c
      - -h
      - "10.1.0.157"
      - -p
      - "8984"
      - -z
      - "10.1.0.157:2181,10.1.0.157:2182,10.1.0.157:2183"
      - -m
      - 1g
      - -t
      - "/opt/solr/server/solr/mycores"
    volumes:
      - "./data1/mycores:/opt/solr/server/solr/mycores"

【讨论】:

    【解决方案3】:

    我在本地使用此设置来测试三个 solr 实例和三个 zookeeper 实例,基于 official example

    version: '3.7'
    services:
      solr-1:
        image: solr:8.7
        container_name: solr-1
        ports:
          - "8981:8983"
        environment:
          - ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
        networks:
          - solr
        depends_on:
          - zoo-1
          - zoo-2
          - zoo-3
      #    command:
      #      - solr-precreate
      #      - gettingstarted
    
      solr-2:
        image: solr:8.7
        container_name: solr-2
        ports:
          - "8982:8983"
        environment:
          - ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
        networks:
          - solr
        depends_on:
          - zoo-1
          - zoo-2
          - zoo-3
    
      solr-3:
        image: solr:8.7
        container_name: solr-3
        ports:
          - "8983:8983"
        environment:
          - ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
        networks:
          - solr
        depends_on:
          - zoo-1
          - zoo-2
          - zoo-3
    
      zoo-1:
        image: zookeeper:3.6
        container_name: zoo-1
        restart: always
        hostname: zoo-1
        volumes:
          - zoo1data:/data
        ports:
          - 2181:2181
        environment:
          ZOO_MY_ID: 1
          ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo-2:2888:3888;2181 server.3=zoo-3:2888:3888;2181
        networks:
          - solr
    
      zoo-2:
        image: zookeeper:3.6
        container_name: zoo-2
        restart: always
        hostname: zoo-2
        volumes:
          - zoo2data:/data
        ports:
          - 2182:2181
        environment:
          ZOO_MY_ID: 2
          ZOO_SERVERS: server.1=zoo-1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo-3:2888:3888;2181
        networks:
          - solr
    
      zoo-3:
        image: zookeeper:3.6
        container_name: zoo-3
        restart: always
        hostname: zoo-3
        volumes:
          - zoo3data:/data
        ports:
          - 2183:2181
        environment:
          ZOO_MY_ID: 3
          ZOO_SERVERS: server.1=zoo-1:2888:3888;2181 server.2=zoo-2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
        networks:
          - solr
    
    networks:
      solr:
    
    # persist the zookeeper data in volumes    
    volumes:
      zoo1data:
        driver: local
      zoo2data:
        driver: local
      zoo3data:
        driver: local
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      相关资源
      最近更新 更多