-1

I have setup docker based solr cluster based on below file

   version: '3'
services:
 zoo1:
   image: zookeeper:3.4
   volumes:
     - './zoo1_data:/data'
   environment:
     ZOO_MY_ID: 1
     ZOO_PORT: 2181 
     ZOOKEEPER_QUORUM_LISTEN_ON_ALL_IPS: 'true'  
     ZOO_SERVERS: 'server.1=0.0.0.0:1112:1113'
   ports:
     - 1111:2181
   deploy:
     mode: replicated
     replicas: 1
     placement:
       constraints: 
        - "node.hostname==192.168.zksolr.host"
 solr1:
   image: solr
   hostname: solr1
   ports:
     - 1114:1114
   volumes:
     - './solr1_varsolr:/var/solr'
   environment:
     SOLR_HOST: 'solr.1.host'
     SOLR_PORT: 1114
     ZK_HOST: 'solr.1.ip:1111'
   deploy:
     mode: replicated
     replicas: 1
     placement:
       constraints: 
       - "node.hostname==192.168.zksolr.host"
       - "node.role==manager"
   depends_on:
     - zoo1

 solr2:
   image: solr
   hostname: solr2
   ports:
     - 1115:1115
   volumes:
     - './solr2_varsolr:/var/solr'
   environment:
     SOLR_HOST: 'solr.2.ip'
     SOLR_PORT: 1115
     ZK_HOST: 'solr.1.ip:1111'
   deploy:
     mode: replicated
     replicas: 1
     placement:
       constraints: 
       - "node.hostname==solr.2.host"
       - "node.role==worker"
   depends_on:
     - zoo1
     
 solr3:
   image: solr
   hostname: solr3
   ports:
     - 1116:1116
   volumes:
     - './solr3_varsolr:/var/solr'
   environment:
     SOLR_HOST: 'solr.3.ip'
     SOLR_PORT: 1116
     ZK_HOST: 'solr.1.ip:1111'
   deploy:
     mode: replicated
     replicas: 1
     placement:
       constraints: 
       - "node.hostname==solr.3.host"
       - "node.role==worker"
   depends_on:
     - zoo1
     
networks:
 solrnet:
   driver: overlay
   ipam:
     driver: default
     config:
       - subnet: 10.101.0.0/16
volumes:
 zoo1_data:
 zoo2_data:
 zoo3_data:
 solr1_varsolr:
 solr2_varsolr:
 solr3_varsolr:
solr.1.ip -> IP of zookeeper and solr 1
solr.2.ip -> IP of solr 2
solr.3.ip -> IP of solr 3
Created directories in parallel to docker-compose.yml file
 1. zoo1_data
 2. solr1_varsolr
 3. solr2_varsolr 
 4. solr3_varsolr 

Started docker service in every node Started started docker swarm Have added nodes to manager Started solr cluster with command

docker stack deploy --with-registry-auth -c docker-compose.yml my_stack

I'm able to see all the Solr nodes in solr dashboard, and I have created collection.

Problem Statement: Now when I remove my_stack using docker stack rm my_stack, and then I deploy it again with docker stack deploy --with-registry-auth -c docker-compose.yml my_stack and now I see Solr dasboard I can't see collections However whatever is mounted out on created directories i.e. solr1_varsolr, solr2_varsolr and solr3_varsolr has data folder with replica and index data in it.

Is this issue with solr or docker stack deployment? If I create collections in my own docker image then it does retain collection, but I want to retain all the collections even if it created on the fly.

Kundan Atre
  • 3,853
  • 5
  • 26
  • 39

0 Answers0