Sign inSign up

coremedia/solr-base

By coremedia

•Updated 5 days ago

Base Image for CoreMedia Solr Search Engine

Image
0

100K+

coremedia/solr-base repository overview

⁠CoreMedia Solr Base Image

This image is based on the official Solr image⁠ from DockerHub and adds the following features:

  • scripting logic to configure environment variables
  • scripting logic to support a leader / follower setup
  • JMX Prometheus agent

⁠Release Notes

Release Notes can be found at GitHub⁠.

⁠License

As with all Docker images, this image also contain other software which may be under other licenses (such as Bash, coreutils, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

⁠Specification

⚠️ 2022-09-30 - The current specification can be found at GitHub⁠

⁠Layout

In contrast to the default Solr image, this image puts only the index into /var/solr, but keeps the configuration and additional classpath files separately. This allow an upgrade process, where configuration and custom code can be replaced by rolling out a new image version.

  • /opt/solr/server/solr - Solr home directory set by environment variableSOLR_HOME.
  • /var/solr/data - Solr core directory set by Java Systemproperty -DcoreRootDirectory.
  • /opt/solr/prometheus - Configuration dir for the Prometheus JMX agent.
⁠Environment Variables
  • SOLR_HEAP - defaults to 512m.
  • SOLR_OPTS - defaults to -XX:-UseLargePages.
  • EXIT_ON_OOM - defaults to true.
  • PROMETHEUS - defaults to false.
⁠Ports
  • 8983 - standard solr port.
  • 8199 - Prometheys agent port if activated.
⁠Volumes

/var/solr should be a mounted volume to persist the search index.

⁠Leader - Follower Index Replication

To enable leader / follower index replication, you need to add another solr container instance with the following environment variables configured:

  • SOLR_LEADER - set this to false on the follower.
  • SOLR_FOLLOWER - set this to true on the follower.
  • SOLR_LEADER_URL - set this to the solr leader url.
  • SOLR_FOLLOWER_AUTOCREATE_CORES - set this to true to automatically create the cores for the follower.
  • SOLR_FOLLOWER_AUTOCREATE_CORES_LIST - set this to a space separated list of core names to control, which cores should be replicated by this follower
  • SOLR_FOLLOWER_AUTOCREATE_THRESHOLD - set this to a numerical value, to wait for at least that number of cores to be available, before creating all found cores and start solr. This is only effective, if SOLR_FOLLOWER_AUTOCREATE_CORES_LIST is empty.
⁠Example
  1. build the image:
docker build -t coremedia/solr-base .
  1. run the docker-compose setup:
docker-compose --profiles with-replication up

The docker-compose.yml should look like:

version: "3.8"

services:
  solr-leader:
    image: coremedia/solr-base
    container_name: solr-leader
    ports:
    - 8983:8983
    volumes:
    - solr-leader_data:/var/solr
    
  # you cannot set container_name when using replicas
  solr-follower:
    image: coremedia/solr-base  
    profiles:
      - with-replication
    depends_on:
      - solr-leader
    environment:
      SOLR_LEADER: "false"
      SOLR_FOLLOWER: "true"
      SOLR_LEADER_URL: http://solr-leader:8983/solr
    deploy:
      mode: replicated
      replicas: 3
    ports:
      # defining only the container port will prevent port collisions on host. 
      # Docker will chose a random port.
      - "8983" 
    volumes:
      # anonymous volume mount for each replica
      - /var/solr 

volumes:
  solr-leader_data: {}

⁠License

As with all Docker images, this image also contain other software which may be under other licenses (such as Bash, coreutils, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

Tag summary

Content type

Image

Digest

Size

331.3 MB

Last updated

over 4 years ago

docker pull coremedia/solr-base