Search code examples
dockersolr

Dockerized Solr not updating configsets


I have a Dockerized Solr and I have to update a configset. The file I modified is under this path: solrhome/server/solr/configsets/myconfig/conf and is called DIH_ContentIndex.xml. After that, I deleted my Docker images and containers with these commands:

docker container stop <solr_container_id>
docker container rm <solr_container_id>
docker image rm <solr_img_id>
docker volume rm <solr_volume>

I rebuilt everything but Solr is not taking changes, as I can see when i go in the Files section. So, I decided to add a configset, that we will call newconfig with my changes at the same level of the other one. Redid everything and restarted. But nothing. So, I decided to enter the container with docker exec -it --user root <solr_container_id> /bin/bash and decided to change the files manually (just to test). Stopped, restarted the container but still nothing. After deleting again everything about Docker, I can still see my changes from inside the container. At this point, I think either I'm not deleting everything or I'm not placing my new config in the right directory. What else do I need to do for a clean build?

Here is the fragment of docker-compose I'm trying to launch, just in case this is the fault.

solr:
    container_name: "MySolr"
    build: ./solr
    restart: always
    hostname: solr
    ports:
     - "8983:8983"
    networks:
     - my-network
    volumes:
     - vol_solr:/opt/solr
    depends_on:
     - configdb
     - zookeeper
    environment:
        ZK_HOST: zookeeper:2181

Of course, everything else is running fine so there is no error witht he dependencies.

It is not a problem of browser cache. I already tried cleaning the cache and using a different browser.

Some updates: it actually copies my config inside the fresh-built image.. But still, can't select it from the Frontend. Clearly, I'm placing my config files in the wrong path.

Thank you in advance!


Solution

  • Solved! All I had to do was:

    • enter the Solr container, with this command:

      docker exec -it --user root <solr_container_id> /bin/bash
      entering as root to be able to install nano

    • copy my pre-existing config somewhere (in the same path of bin for convenience) and modify the file DIH_ContentIndex.xml

      apt update
      apt install nano
      nano DIH_ContentIndex.xml

    • Go to solr/bin pload to ZK, using this command:

      solr zk upconfig -n config_name -d /path/to/config_folder