This image borrows heavily from Leo Di Donato work at leodido/dockerfiles. The
The updates to the image was done to facilitate the following:
- Temporary fix for the issue of
libstemmerthat changed the name of the non-UTF8 Hungarian source files.
- Flip the order of EXPOSEd ports for convenient linking.
- Mount the VOLUMEs to expose the corresponding directories.
- By default, specify a CMD to run the
indexall.shscript. It can be overriding at runtime.
You can read here the official changelog.
A Sphinx Search instance builded from source.
stemming (via libstemmer, link)
xml (with expat and iconv)
regular expression filter (via RE2 engine, link)
9312for client connections
9306for SQL connections
This image provides some directories for your configurations:
searchd.sh, to start
searchdin the foreground (needed also for real-time indexes)
indexall.sh, to index all the plain indexes (i.e.,
indexer --all) defined in the configuration
The simplest use case is to start a Sphinx Search container, attach to it and do whatever you want with it:
docker run -i -t leodido/sphinxsearch /bin/bash
Daemonized usage (1)
Assume that we want to index our documents into some real-time indexes.
Given a Sphinx Search configuration file (e.g.,
sphinx.conf) in our current directory (i.e.,
$PWD), we have to share its content with the container using docker option
We also want to link to exposed
9306 port to query Sphinx Search from the host machine.
So, the command to run a daemonized instance of this container is:
SS=$(docker run -i -t -v $PWD:/usr/local/etc -p 9306 -d leodido/sphinxsearch ./searchd.sh)
Now we want to see to which host address it has been linked:
docker port $SS 9306
And eventually try to connect to it:
mysql -h 0.0.0.0 -P 49174
We can now index documents into our Sphinx Search container or perform queries against it.
Daemonized usage (2)
Assume that we want to index our documents into some plain indexes.
the data source files (e.g. XML files structured as demanded by the Sphinx Search's xmlpipe2 driver)
a valid Sphinx Search configuration file that defines our plain indexes and their sources
a way to querying Sphinx Search from the host machine (e.g., using IP
So, assuming that in our current directory (i.e.,
$PWD) we have these files, we run a daemonized instance of Sphinx Search as follow:
docker run -i -t -v $PWD:/usr/local/etc -p 127.0.0.1:9306:9306 -d leodido/sphinxsearch ./indexall.sh
This way we have indexed our documents and started serving queries.
Again, if you want to query from the host machine:
mysql -h 127.0.0.1 -P 9306