replacing opensearch with solr

This commit is contained in:
Stefan Hardegger
2025-09-22 09:44:50 +02:00
parent 9e684a956b
commit 87f37567fb
40 changed files with 2000 additions and 3464 deletions

View File

@@ -34,18 +34,10 @@ services:
- SPRING_DATASOURCE_USERNAME=storycove
- SPRING_DATASOURCE_PASSWORD=${DB_PASSWORD}
- JWT_SECRET=${JWT_SECRET}
- OPENSEARCH_HOST=opensearch
- OPENSEARCH_PORT=9200
- OPENSEARCH_SCHEME=http
- OPENSEARCH_USERNAME=
- OPENSEARCH_PASSWORD=
- OPENSEARCH_SSL_VERIFICATION=false
- OPENSEARCH_TRUST_ALL_CERTS=true
- OPENSEARCH_CONNECTION_TIMEOUT=60000
- OPENSEARCH_SOCKET_TIMEOUT=120000
- OPENSEARCH_MAX_RETRIES=5
- OPENSEARCH_RETRY_ON_FAILURE=true
- SEARCH_ENGINE=${SEARCH_ENGINE:-opensearch}
- SOLR_HOST=solr
- SOLR_PORT=8983
- SOLR_SCHEME=http
- SEARCH_ENGINE=${SEARCH_ENGINE:-solr}
- IMAGE_STORAGE_PATH=/app/images
- APP_PASSWORD=${APP_PASSWORD}
- STORYCOVE_CORS_ALLOWED_ORIGINS=${STORYCOVE_CORS_ALLOWED_ORIGINS:-http://localhost:3000,http://localhost:6925}
@@ -55,7 +47,7 @@ services:
depends_on:
postgres:
condition: service_started
opensearch:
solr:
condition: service_started
networks:
- storycove-network
@@ -75,22 +67,32 @@ services:
- storycove-network
opensearch:
build:
context: .
dockerfile: opensearch.Dockerfile
# No port mapping - only accessible within the Docker network
solr:
image: solr:9.9.0
ports:
- "8983:8983" # Expose Solr Admin UI for development
environment:
- cluster.name=storycove-opensearch
- node.name=opensearch-node
- discovery.type=single-node
- bootstrap.memory_lock=false
- "OPENSEARCH_JAVA_OPTS=-Xms256m -Xmx512m --add-opens=java.base/java.lang=ALL-UNNAMED -Dlucene.useVectorAPI=false -Dorg.apache.lucene.store.MMapDirectory.enableMemorySegments=false"
- "DISABLE_INSTALL_DEMO_CONFIG=true"
- "DISABLE_SECURITY_PLUGIN=true"
- "DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI=true"
- "ES_TMPDIR=/tmp"
- "_JAVA_OPTIONS=-Djdk.net.useExclusiveBind=false"
- SOLR_HEAP=512m
- SOLR_JAVA_MEM=-Xms256m -Xmx512m
volumes:
- solr_data:/var/solr
- ./solr/stories:/opt/solr-9.9.0/server/solr/configsets/storycove_stories
- ./solr/authors:/opt/solr-9.9.0/server/solr/configsets/storycove_authors
command: >
sh -c "
echo 'Starting Solr...' &&
solr start -f &
SOLR_PID=$$! &&
echo 'Waiting for Solr to be ready...' &&
sleep 15 &&
echo 'Creating cores...' &&
(solr create_core -c storycove_stories -d storycove_stories || echo 'Stories core already exists') &&
echo 'Stories core ready' &&
(solr create_core -c storycove_authors -d storycove_authors || echo 'Authors core already exists') &&
echo 'Authors core ready' &&
echo 'Both cores are available' &&
wait $$SOLR_PID
"
deploy:
resources:
limits:
@@ -99,39 +101,19 @@ services:
memory: 512M
stop_grace_period: 30s
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]
test: ["CMD-SHELL", "curl -f http://localhost:8983/solr/admin/ping || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch_data:/usr/share/opensearch/data
start_period: 60s
networks:
- storycove-network
restart: unless-stopped
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:3.2.0
ports:
- "5601:5601" # Expose OpenSearch Dashboard
environment:
- OPENSEARCH_HOSTS=http://opensearch:9200
- "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true"
depends_on:
- opensearch
networks:
- storycove-network
volumes:
postgres_data:
opensearch_data:
solr_data:
images_data:
library_config: