如何使用docker compose运行SolrCloud

如何使用docker compose运行SolrCloud,docker,solr,apache-zookeeper,solrcloud,Docker,Solr,Apache Zookeeper,Solrcloud,请帮我处理docker compose文件。 现在,我正在docker文件中使用Solr,但我需要将其更改为SolrCloud。我需要2个Solr实例,一个内部Zookeeper和docker(本地)。 这是我编写的docker compose文件的一个示例: version: "3" services: mongo: image: mongo:latest container_name: mongo hostname: mongo networks:

请帮我处理
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

提前谢谢你

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是一种群集,当您每秒有数百甚至数千次搜索,收集数百万甚至数十亿个文档时,您需要它


您的群集必须水平扩展。

版本才能与外部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"

我在本地使用此设置来测试solr的三个实例和zookeeper的三个实例

版本:“3.7”
服务:
solr-1:
图片:solr:8.7
集装箱名称:solr-1
端口:
- "8981:8983"
环境:
-ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
网络:
-索尔
取决于:
-动物园-1
-动物园-2
-动物园-3
#命令:
#-solr预处理
#-开始
solr-2:
图片:solr:8.7
集装箱名称:solr-2
端口:
- "8982:8983"
环境:
-ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
网络:
-索尔
取决于:
-动物园-1
-动物园-2
-动物园-3
solr-3:
图片:solr:8.7
集装箱名称:solr-3
端口:
- "8983:8983"
环境:
-ZK_HOST=zoo-1:2181,zoo-2:2181,zoo-3:2181
网络:
-索尔
取决于:
-动物园-1
-动物园-2
-动物园-3
动物园-1:
图片:zookeeper:3.6
集装箱名称:zoo-1
重新启动:始终
主机名:zoo-1
卷数:
-zoo1data:/data
端口:
- 2181:2181
环境:
动物园我的ID:1
ZOO_服务器:server.1=0.0.0.0:2888:3888;2181服务器。2=zoo-2:2888:3888;2181服务器。3=zoo-3:2888:3888;2181
网络:
-索尔
动物园-2:
图片:zookeeper:3.6
集装箱名称:zoo-2
重新启动:始终
主机名:zoo-2
卷数:
-zoo2data:/data
端口:
- 2182:2181
环境:
动物园号码:2
ZOO_服务器:server.1=ZOO-1:2888:3888;2181服务器。2=0.0.0.0:2888:3888;2181服务器。3=zoo-3:2888:3888;2181
网络:
-索尔
动物园-3:
图片:zookeeper:3.6
集装箱名称:zoo-3
重新启动:始终
主机名:zoo-3
卷数:
-zoo3data:/data
端口:
- 2183:2181
环境:
动物园号码:3
ZOO_服务器:server.1=ZOO-1:2888:3888;2181服务器。2=zoo-2:2888:3888;2181服务器3=0.0.0.0:2888:3888;2181
网络:
-索尔
网络:
解决方案:
#将zookeeper数据保存在卷中
卷数:
Zoo1数据:
司机:本地
zoo2data:
司机:本地
Zoo3D数据:
司机:本地

您是否有一些错误?请发布它们(重新编辑您的问题)。此配置正在运行,但我需要Solrcloud+zookeeper。我已尝试更改此代码:version:'3.3'服务:solr1:container_name:solr1 image:solr ports:-“8981:8983”卷:-./data:/opt/solr/server/solr/mycores入口点:-docker-entrypoint.sh-solr-start--f--c--z-zoo1:2181,zoo2:2181,zoo3:2181--a-“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044”网络:-如果需要,我可以发送dockercompose文件。感谢您,Freedev,感谢您的时间和帮助。很好。嗨,伙计们,很抱歉打扰你们。。。我在和一个solr Docker搏斗,你能帮我吗?我在这里发布了一个问题:谢谢