solr.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/bash
  2. if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
  3. echo "SKIP_SOLR=y, skipping Solr..."
  4. sleep 365d
  5. exit 0
  6. fi
  7. MEM_TOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
  8. if [[ "${1}" != "--bootstrap" ]]; then
  9. if [ ${MEM_TOTAL} -lt "2097152" ]; then
  10. echo "System memory less than 2 GB, skipping Solr..."
  11. sleep 365d
  12. exit 0
  13. fi
  14. fi
  15. set -e
  16. # run the optional initdb
  17. . /opt/docker-solr/scripts/run-initdb
  18. # fixing volume permission
  19. [[ -d /opt/solr/server/solr/dovecot-fts/data ]] && chown -R solr:solr /opt/solr/server/solr/dovecot-fts/data
  20. if [[ "${1}" != "--bootstrap" ]]; then
  21. sed -i '/SOLR_HEAP=/c\SOLR_HEAP="'${SOLR_HEAP:-1024}'m"' /opt/solr/bin/solr.in.sh
  22. else
  23. sed -i '/SOLR_HEAP=/c\SOLR_HEAP="256m"' /opt/solr/bin/solr.in.sh
  24. fi
  25. if [[ "${1}" == "--bootstrap" ]]; then
  26. echo "Creating initial configuration"
  27. echo "Modifying default config set"
  28. cp /solr-config-7.7.0.xml /opt/solr/server/solr/configsets/_default/conf/solrconfig.xml
  29. cp /solr-schema-7.7.0.xml /opt/solr/server/solr/configsets/_default/conf/schema.xml
  30. rm /opt/solr/server/solr/configsets/_default/conf/managed-schema
  31. echo "Starting local Solr instance to setup configuration"
  32. gosu solr start-local-solr
  33. echo "Creating core \"dovecot-fts\""
  34. gosu solr /opt/solr/bin/solr create -c "dovecot-fts"
  35. # See https://github.com/docker-solr/docker-solr/issues/27
  36. echo "Checking core"
  37. while ! wget -O - 'http://localhost:8983/solr/admin/cores?action=STATUS' | grep -q instanceDir; do
  38. echo "Could not find any cores, waiting..."
  39. sleep 3
  40. done
  41. echo "Created core \"dovecot-fts\""
  42. echo "Stopping local Solr"
  43. gosu solr stop-local-solr
  44. exit 0
  45. fi
  46. exec gosu solr solr-foreground