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.