Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
FROM php:8.4-cli
FROM php:8.4-cli-alpine3.20

RUN apt update && apt install libxml2-dev libcurl4-gnutls-dev --yes
RUN apk add --no-cache libxml2-dev libcurl-dev \
&& docker-php-ext-install xml curl \
&& rm -rf /var/cache/apk/*

RUN apt install vim --yes
RUN apk add --no-cache vim \
&& rm -rf /var/cache/apk/*

COPY .docker/entrypoint.sh /opt/

Expand All @@ -12,4 +15,4 @@ COPY ./ /opt/solr2

WORKDIR /opt/solr2

ENTRYPOINT ["sh","/opt/entrypoint.sh"]
ENTRYPOINT ["sh","/opt/entrypoint.sh"]
8 changes: 3 additions & 5 deletions README.INSTALLATION
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
PHP VERSION Dependencies
================================================================================

PHP version 7.0 or later is needed
PHP version 8.0 or later is needed

================================================================================
Extension Dependencies
Expand Down Expand Up @@ -224,10 +224,8 @@ http://windows.php.net/downloads/snaps/php-5.3/php-5.3-src-latest.zip
How to Report Bugs
================================================================================

Please report bugs to omars@php.net
Please report bugs to

You can also register bugs here

http://pecl.php.net/bugs/report.php?package=solr
https://github.com/php/pecl-search_engine-solr/issues

Thank you for using PHP
29 changes: 24 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,34 @@ For RHEL/Fedora/CentOS/Scientific linux

Please make sure to install them before proceeding to the compilation process
```bash
phpize
./configure
make
make test
sudo make install
phpize
./configure
make
make test
sudo make install
```

more details on README.INSTALLATION

Local Dev Environment
---------------------

```bash
docker-compose up -d
# OR
docker-compose up --build -d

phpize
./configure
make

export SOLR_SERVER_CONFIGURED=1
php run-tests.php -q -d extension=$PWD/modules/solr.so --show-diff
# OR run a single test
php run-tests.php -q -d extension=$PWD/modules/solr.so --show-diff tests/004.solrclient_query_terms.phpt

```

Contributions
-------------
All forms of contributions are welcome! Whether contributing to tests, or the source.
Expand Down
4 changes: 1 addition & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
version: '2.1'

services:
solr:
build: tests/docker/
ports:
- "8983:8983"
- "127.0.0.1:8983:8983"
20 changes: 11 additions & 9 deletions tests/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
FROM solr:6.3
FROM solr:7-slim

COPY collections collections
USER root

RUN solr start &&\
solr create -c collection1 &&\
solr create -c metal_store &&\
solr create -c myfiles &&\
curl 'http://localhost:8983/solr/collection1/update/json?commit=true' --data-binary @collections/collection1.json -H 'Content-type:application/json' &&\
curl 'http://localhost:8983/solr/metal_store/update/json?commit=true' --data-binary @collections/metal_store.json -H 'Content-type:application/json' &&\
solr stop
RUN apt-get update && \
apt-get install -y --no-install-recommends curl && \
rm -rf /var/lib/apt/lists/*

COPY collections /opt/solr-configs

COPY --chmod=755 init-solr.sh /docker-entrypoint-initdb.d/init-solr.sh

USER solr
34 changes: 34 additions & 0 deletions tests/docker/init-solr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash
set -e

echo "Starting temporary Solr server for initialization..."
solr start
echo "Solr server is running."

create_and_index() {
COLLECTION_NAME=$1
DATA_FILE=$2

echo "Checking if collection '$COLLECTION_NAME' exists..."

if curl -s "http://localhost:8983/solr/admin/collections?action=LIST" | grep -q "\"$COLLECTION_NAME\""; then
echo "Collection '$COLLECTION_NAME' already exists. Skipping creation and indexing."
else
echo "Collection '$COLLECTION_NAME' not found. Creating..."
solr create -c "$COLLECTION_NAME"

if [ -n "$DATA_FILE" ] && [ -f "$DATA_FILE" ]; then
echo "Indexing data for '$COLLECTION_NAME' from $DATA_FILE..."
curl "http://localhost:8983/solr/$COLLECTION_NAME/update/json?commit=true" --data-binary @"$DATA_FILE" -H 'Content-type:application/json'
else
echo "No data file provided or found for '$COLLECTION_NAME'. Skipping indexing."
fi
fi
}

create_and_index "collection1" "/opt/solr-configs/collection1.json"
create_and_index "metal_store" "/opt/solr-configs/metal_store.json"

echo "Data initialization finished. Stopping temporary Solr server..."
solr stop
echo "Solr initialization complete."