wodby / solr Goto Github PK
View Code? Open in Web Editor NEWSolr docker container image
Home Page: https://wodby.com/stacks/solr
License: MIT License
Solr docker container image
Home Page: https://wodby.com/stacks/solr
License: MIT License
Hi,
I'm trying to mount some volumes to provide custom configsets and predefined cores.
The problem is that docker-compose mounts volumes as uid 1000 what works well in your php containers but not in this one because the solr user uid is 8983.
I can't find any way to force docker-compose to use another uid while mouting the volume.
Thanks a lot!
As Search API Solr 3.x now has a stable release version, would it be possible to get a corresponding config set added? Thanks!
SOLR_CONFIG_SET="search_api_solr_4.1.6"
SOLR_TAG=8-4.13.0
Running search_api_solr:4.2.1 results in
You are using outdated Solr configuration set. Please follow the instructions described in the README.md file for setting up Solr.
I'm trying to hook this solr-container up to a Drupal-instance, using https://github.com/wodby/docker4drupal.
I followed the steps outlined at https://wodby.com/docs/1.0/stacks/drupal/local/#solr-search-api, where it mentions:
Access Solr container via
make shell solr
and runmake init -f /usr/local/bin/actions.mk
. This will enable authentication for Solr Cloud mode and create a collection nameddefault
that will use_default
config set.
However, the collection is never created: when I access the solr admin panel, I see no cores and no collections, and communication with Solr SearchAPI in Drupal cannot be established.
I believe this is due to the fact that init_solr
first sets up a new authentication with user:pass, and then goes on to call the solr-API via curl without user:pass:
Lines 13 to 24 in 02379f8
When I run make init -f /usr/local/bin/actions.mk
in the solr-container, then execute the curl-call for listing collections manually, I get this:
/opt/solr/server/solr $ curl -s "http://solr:8983/solr/admin/collections?action=LIST"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 401 require authentication</title>
</head>
<body><h2>HTTP ERROR 401 require authentication</h2>
<table>
<tr><th>URI:</th><td>/solr/admin/collections</td></tr>
<tr><th>STATUS:</th><td>401</td></tr>
<tr><th>MESSAGE:</th><td>require authentication</td></tr>
<tr><th>SERVLET:</th><td>default</td></tr>
</table>
</body>
</html>
I believe the call that sets up authentication should either be made after creating cores/collections, or the respective curl-calls should be provided the newly created credentials.
Due to https://www.drupal.org/project/search_api_solr/issues/3015993 I have been removing the last line of solrcore.properties when the container is built. After upgrading to the latest version of search_api_solr and pulling the latest build of this image I am no longer able to do this due to search_api_solr_8.x-3.0 been owned by root.
Can this be changed? alternatively is solr.install.dir=../../.. needed in solrcore.properties
Currently it is not possible to set the instanceDir when creating a new core:
docker-compose exec solr make core=MYNEWCORE -f /usr/local/bin/actions.mk
I would like to be able to do the following
docker-compose exec solr make core=MYNEWCORE instanceDir=/opt/solr/server/solr/mycores -f /usr/local/bin/actions.mk
I guess this would have to be a change in the 'actions.mk' script?
This issue outlines a parallel, automated configset generation and packaging process for the Drupal module. Through this new process, sensible-default english-language config sets are generated with the explicit goal of making cloud-native/Dockerized workflows faster and easier, while also expanding support for hosted Solr.
The download script currently rejects any version which ships only templates. This could be changed to bring in the jumpstart configsets.
Additionally, the download script does not currently recognize semantic versioning in recognizing releases; this line could/should be changed to use the "current" and "7.x" compatibility tags from the Drupal updates API to capture both 7.x and 8.x.
When attempting to index file attachments using the Drupal module 'search_api_attachments', it was discovered that the following error is being thrown inside the solr container:
Error loading class 'solr.extraction.ExtractingRequestHandler'
I believe this is caused by the path to apache-solr-cell-\d.*.jar or /extraction/lib being incorrect in the solrconfig.xml
I'm trying to run this container but am unable to get it started
docker run --name solr -d -p 8983:8983 -t wodby/solr:5.5 -e "SOLR_DEFAULT_CONFIG_SET=search_api_solr_7.x-1.9"
I get the error
ERROR: Unsupported example SOLR_DEFAULT_CONFIG_SET=search_api_solr_7.x-1.9! Please choose one of: cloud, dih, schemaless, or techproducts
What am I doing wrong here?
I'm currently using docker4drupal with Solr, which works great, thanks for it!
I've been trying to find the right SOLR_TAG
value to get Solr 6.6.1
with my docker-compose.yml
file.
This is what I was able to find out:
SOLR_TAG=6-4.1.2
gets Solr 6.6.6
SOLR_TAG=6-2.3.0
gets Solr 6.6.2
SOLR_TAG=6.6-2.2.0
gets Solr 6.6.0
Is there a SOLR_TAG
I can use to get Solr 6.6.1
?
Or (better) can I define somewhere the SOLR_VER
value so that I can get Solr in the version 6.6.1
?
Thanks a lot for your support!
Hi,
Thanks so much for this great image. I am working on a Drupal 7 site and see that this supports search_api_solr 7.x-1.14 but was wondering if i could use search_api_solr 7.x-1.15. Thanks.
Could you can add support ARM64 architecture in you SOLR containers or add additional SOLR core for it ?
Hi,
The Solr container doesn't create the default core from Search API Solr config set as described in the README.md file.
I've got the solr
service setup in this way:
image: wodby/solr:$SOLR_TAG
container_name: "${PROJECT_NAME}_solr"
environment:
SOLR_DEFAULT_CONFIG_SET: $SOLR_CONFIG_SET
SOLR_HEAP: 1024m
Where in my .env file $SOLR_TAG is 7-4.7.4
and $SOLR_CONFIG_SET is search_api_solr_4.1.6
.
The Solr instance is up and running, I can connect to it but there are no cores. Also opening a console into the container and ls /opt/solr/server/solr/configsets
lists all search_api_solr config sets one would expect.
I had to manually fire in the browser http://solr.myproject-docker-host:8000/solr/admin/cores?action=CREATE&name=default&configSet=search_api_solr_4.1.6&instanceDir=default
in order for the core to be created.
The search_api_solr:3.9 module comes with a new configset so the old from 3.2 will not work anymore. should this lead to a new release tag?
I would like to add some new conf to solr configuration (spellcheck and "partial string search").
How should I provide these configurations?
Hi,
Thanks for adding Zookeeper support! Can you please update the documentation about the environment variables with ZK_HOST
instead of ZK_HOSTS
?
Hi,
I had a question about Solr and the core setup. All works well when we use the Wodby control panel to set up Varnish and it auto creates a core called 'default' which is great.
The issue we're having is on our local deployments which we're trying to automate. We can create the container for Solr using wodby/solr with no issues using a docker-compose.yml file, however, I've reached a road block with trying to automate the core creation. I’ve tried a variation of things for quite some time with this so far and no luck. If we login with a shell and run
'make create core=default -f /usr/local/bin/actions.mk'
then it works, but we ideally need this to happen when the container is built rather than manually doing it and I can't seem to get this into the docker-compose.yml which we use.
I've seen that Wodby Solr needs to spin up with entrypoint.sh, followed by command solr-foreground. If I try to make the core before solr-foreground fails as solr needs to be running.
One of the main ways I’ve tried to work around this is by adding in my docker-compose.yml;
command: bash -c “solr-foreground && make create core=default -f /usr/local/bin/actions.mk”
This should work but the 'make create' command is ignored. I think this is because 'solr-foreground' runs solr-fg “$@” in the script. I'm thinking that as it’s expecting arguments it ignores anything else I put afterwards including the '&& make create..' command as it's reading it as an argument. I’ve tested this by attempting to create a file instead of running the make create. Trying to create the file before I run the solr-foreground.sh works.
Everything I’ve read elsewhere says to use a command usefully called ‘precreate-core’ beforehand, but it’s directory is hardcoded set to create the file in /var/solr/data, however, your version uses /opt/solr/server/solr. It does note in the make action.mk file that "We don't use solr CLI because it does not create configs out of config set", which I'm wondering this is the reason.
The closest I’ve got to things working is;
command: bash -c "precreate-core default; solr-foreground -s /var/solr/data"
This does creates the core and seems to link it up correctly, but using the above gives me an error using the normal search on the site SOLR on my local.
Do you know any way that I can get the core automatically created as part of the container build using a docker-compose.yml file? I'm hoping that as you've found a way for your Wodby control panel to automate building the core, that you may just know a command I could try in there that we could use.
Thanks in advance,
Tim
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.